运行时声明属性?

时间:2011-02-16 21:57:34

标签: objective-c runtime objective-c-runtime

有没有办法在Obj-C中在运行时声明属性?我正在寻找像class_addMethod这样的东西,但是对于属性。

2 个答案:

答案 0 :(得分:2)

一个常见的误解是@property意味着代码生成。它不是。 @synthesize这样做。那么,真的,你的问题很可能无论如何都要在运行时生成setter / getter方法吗?

答案当然是肯定的,你会使用你已经找到的东西。

答案 1 :(得分:0)

属性是getter / setter方法的语法糖 您无法在运行时声明它们。正如上面的评论所说,你会如何使用它们? 但您可以声明它们并在运行时添加实现。 @synthesize关键字只是安装默认的getter / setter实现。要防止这种情况,请使用@dynamic关键字,并在运行时提供实现。

您可能希望查看更轻量级的方法,例如拦截消息(NSObject>>(id)forwardingTargetForSelector和相关方法)。

相关问题