有没有办法在Obj-C中在运行时声明属性?我正在寻找像class_addMethod
这样的东西,但是对于属性。
答案 0 :(得分:2)
一个常见的误解是@property
意味着代码生成。它不是。 @synthesize
这样做。那么,真的,你的问题很可能无论如何都要在运行时生成setter / getter方法吗?
答案当然是肯定的,你会使用你已经找到的东西。
答案 1 :(得分:0)
属性是getter / setter方法的语法糖 您无法在运行时声明它们。正如上面的评论所说,你会如何使用它们? 但您可以声明它们并在运行时添加实现。 @synthesize关键字只是安装默认的getter / setter实现。要防止这种情况,请使用@dynamic关键字,并在运行时提供实现。
您可能希望查看更轻量级的方法,例如拦截消息(NSObject>>(id)forwardingTargetForSelector和相关方法)。