1、KVC簡介
全稱是Key-value coding,翻譯成鍵值編碼。顧名思義,在某種程度上跟map的關系匪淺。它提供了一種使用字符串而不是訪問器方法去訪問一個對象實例變量的機制。
2、KVO簡介
全稱是Key-value observing,翻譯成鍵值觀察。提供了一種當其它對象屬性被修改的時候能通知當前對象的機制。再MVC大行其道的Cocoa中,KVO機制很適合實現(xiàn)model和controller類之間的通訊。
總結(jié)一下,想使用KVO有三種方法:
- 1)使用了KVC
使用了KVC,如果有訪問器方法,則運行時會在訪問器方法中調(diào)用will/didChangeValueForKey:方法;
沒用訪問器方法,運行時會在setValue:forKey方法中調(diào)用will/didChangeValueForKey:方法。 - 2)有訪問器方法
運行時會重寫訪問器方法調(diào)用will/didChangeValueForKey:方法。
因此,直接調(diào)用訪問器方法改變屬性值時,KVO也能監(jiān)聽到。 - 3)顯示調(diào)用will/didChangeValueForKey:方法。
總之,想使用KVO,只要有will/didChangeValueForKey:方法就可以了。
http://blog.csdn.net/kesalin/article/details/8194240