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