【发布时间】:2011-06-05 01:12:43
【问题描述】:
Objective-C 有一个称为@dynamic 的功能。
Google 仅列出有关动态类型的结果。
我很少在代码中看到这个,我不明白它的用途。谁能给我解释一下?谢谢。
【问题讨论】:
-
意味着这两个问题也是这个问题和彼此的重复,使它们可以互换。我会接受答案并关闭它。 :)
标签: objective-c dynamic
Objective-C 有一个称为@dynamic 的功能。
Google 仅列出有关动态类型的结果。
我很少在代码中看到这个,我不明白它的用途。谁能给我解释一下?谢谢。
【问题讨论】:
标签: objective-c dynamic
@dynamic 的意思是“我的班级将弄清楚如何在运行时对此做出响应。”使用对象的运行时机制来拦截它通常不会响应的消息。在 Core Data db 用于存储持久数据的情况下,NSManagedObject 将这些转换为对-valueForKey: 和-setValueForKey: 的调用。
查看斯坦福大学 iPhone 开发课程的 Lecture 12(2010 年秋季)。
【讨论】:
<objc/runtime.h>和NSObject.h文件
@dynamic 并不一定意味着该属性将在运行时添加,它只是对编译器说“我知道我已经声明了该属性但没有实现它在这堂课上,但我知道它会在运行时出现”。它可以像已知的实现由超类提供一样简单。