2009-08-20 72 views
4

当我更多地了解志愿和KVC,我已经成为好奇 -自动键 - 值观察可可

如何访问setter方法NSObject的时候自动提供志愿?

如果我创建一个名为setname可以访问一个新的对象,

如何观测时得到someon调用

[OBJ的setName:@ “神秘”]通知;

感谢您的任何反馈

回答

11

我总是对人们解释说,“没有什么是可可神奇;它只是代码。”但KVO接近魔术。它被称为isa-swizzling。您的类在运行时(任何人第一次观察到您)转换为动态生成的子类,它重载所有getter和setter。调用-class有线对你说谎并返回旧类,所以如果你直接看isa指针,你将看不到除调试器外的魔术子类。

注意到KVO一定是离奇的是Cocoa启蒙的一个重要步骤。恭喜。

Key-Value Observing Implementation Details