2011-06-07 53 views
0

我想從功能我可以從observeValueForKeyPath iphone

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context 

,但如果我說object.somevalue的XCode不會編譯的目標得到了若干變量的對象中獲取數據 - 我使用[change objectForKey:@"new"]得到改變了價值,但我想獲得更多的價值,我不想打破我已經設置的MVC。

回答

1

編譯器不知道類object是什麼,它只知道在哪裏找到它(通過id指針)。它不會讓你編譯訪問somevalue的代碼,因爲它不知道去哪裏尋找它。因此,您必須將對象投射到您知道的位置,或者使用括號表示法向其發送消息:[object somevalue],並且符合其提供的警告。

+0

很好的答案,謝謝! – daidai 2011-06-07 04:36:22