【发布时间】:2011-03-25 13:04:44
【问题描述】:
我只是想知道 Objective-c 中的@dynamic 是什么意思以及它是如何工作的。请提供任何帮助
【问题讨论】:
标签: iphone objective-c ipad dynamic
我只是想知道 Objective-c 中的@dynamic 是什么意思以及它是如何工作的。请提供任何帮助
【问题讨论】:
标签: iphone objective-c ipad dynamic
@dynamic 表示您将在运行时动态提供这些方法的实现。
包含所有细节,但基本上使用@dynamic 意味着您承诺在运行时为属性承诺的方法提供实现。
这里特别看;
有关如何构造动态方法并将其放入运行时的示例。
Core Data 使用这种机制来提供访问器。一旦你深入了解它,它就非常酷:)
顺便说一句,ObjC 中的元编程不适合胆小的人,在你了解它之前不要发布它,否则你的用户会受到影响。
【讨论】:
我引用苹果的书The Objective-C Programming Language:
@动态
您使用@dynamic 关键字来告诉 您将完成的编译器 属性隐含的 API 契约 要么通过提供方法 直接或在运行时实现 使用其他机制,例如动态 加载代码或动态方法 解析度。它抑制警告 否则编译器会 如果找不到合适的则生成 实施。你应该使用它 只有当你知道这些方法会 在运行时可用。
你可以找到一个pdf副本here。
【讨论】:
使用@dynamic 需要您自己提供getter/setter 方法。
相反,@synthesize 会为您创建 getter/setter 方法。
【讨论】: