2009-08-20 119 views
4

當我更多地瞭解志願和KVC,我已經成爲好奇 -自動鍵 - 值觀察可可

如何訪問setter方法NSObject的時候自動提供志願?

如果我創建一個名爲setname可以訪問一個新的對象,

如何觀測時得到someon調用

[OBJ的setName:@ 「神祕」]通知;

感謝您的任何反饋

回答

11

我總是對人們解釋說,「沒有什麼是可可神奇;它只是代碼。」但KVO接近魔術。它被稱爲isa-swizzling。您的類在運行時(任何人第一次觀察到您)轉換爲動態生成的子類,它重載所有getter和setter。調用-class有線對你說謊並返回舊類,所以如果你直接看isa指針,你將看不到除調試器外的魔術子類。

注意到KVO一定是離奇的是Cocoa啓蒙的一個重要步驟。恭喜。

Key-Value Observing Implementation Details