@dynamic在Objective-C中做了什么?

58 dynamic objective-c

Objective-C有一个叫做@dynamic的功能.

Google仅列出有关动态类型的结果.

我很少在代码中看到这个,我不明白它的用途.谁能解释一下这个?谢谢.

Pen*_*ang 62

@dynamic表示"我的类将弄清楚如何在运行时对此做出响应."使用对象的运行时机制来拦截它通常不会响应的消息.在使用Core Data db存储持久数据的情况下,NSManagedObject将这些数据转换为-valueForKey:和的调用-setValueForKey:.

看看斯坦福大学iPhone开发课程的第12讲(2010年秋季).

  • @Time Machine:`@ dynamic`并不一定意味着该属性将在运行时添加,它只是对编译器说"我知道我已经声明了属性但没有在这个类中实现它,但我知道它会在运行时出现".它可以很简单,因为已知超类提供了实现. (27认同)
  • 检查`<objc/runtime.h>`和`NSObject.h`文件 (3认同)