KVO和NSNotificationCenter都可以處理值更改。他們之間有什麼區別?他們的正確用法是什麼?KVO和NSNotificationCenter的正確用法和區別是什麼?
回答
KVO專門用於更改properties
。
NSNotificationCenter可用於各種通知的更廣泛的上下文中,而不僅僅是那些處理屬性值更改的通知。另外,您可以創建自己的通知,將其發送給以前以觀察者身份訂閱此通知的任何其他感興趣對象。
要創建自定義通知使用:然後 [[NSNotificationCenter defaultCenter] postNotificationName:@"somethingHappened" object:nil];
另一類可以訂閱該通知與此代碼: [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(somethingHappenedSomewhere:) name:@"somethingHappened" object:nil];
每當方法somethingHappenedSomewhere:
將與NSNotification
作爲參數來調用。
要擴大這個答案... NSNotifications也可以跨應用程序發送。我喜歡將通知視爲在某些對象可能或不可能監聽更改的情況下非常有用,但播放該更改非常重要。 – harrisg 2014-11-06 14:47:04
好吧,那不是真的嗎?這將如何工作?應用程序A發送通知,應用程序B在後臺收到通知,然後執行自定義操作?這絕對不可能,...也許你在談論'UILocalNotification' ...?!這些又是一個完整的故事。 – nburk 2014-11-06 14:50:52
抱歉不清楚,我指的是OS X上的NSDistributedNotificationCenter,我猜這在iOS上不可用。 – harrisg 2014-11-06 14:53:53
- 1. 模型和算法之間的確切區別是什麼?
- 2. NSNotificationCenter和Key Value Observing技術有什麼區別?
- 3. initializeUnorderedBulkOperation和initializeOrderedBulkOperation的確切區別和優缺點是什麼?
- 4. 是什麼區別 - , - >和 - >使用
- 5. 是什麼在Lucene的查詢語法和和+的區別
- 6. 是什麼的file_get_contents和FREAD的區別
- 7. 正常函數調用和pcall後面的區別是什麼
- 8. 算法和方法有什麼區別
- 9. setBackgroundResource和setBackgroundDrawable的區別是什麼
- 10. glframebuffertexture2d和glTexSubImage2d的區別是什麼
- 11. SQLite和SQL的區別是什麼
- 12. MSBuild和TFSBuild的區別是什麼
- 13. $(())和expr之間的區別是什麼?
- 14. $和$ .fn之間的區別是什麼?
- 15. textFieldDidBeginEditing和textFieldShouldBeginEditing的區別是什麼
- 16. XMLHttpRequest和HttpRequest的區別是什麼
- 17. VOB和PVOB的區別是什麼?
- 18. PATH_NOT_FOUND和NAME_NOT_FOUND的區別是什麼
- 19. ++和:haskell之間的區別是什麼?
- 20. socket.io和socket.io-client的區別是什麼?
- 21. 什麼是ASP.NET和C#的區別?
- 22. 是什麼IProvideValueTarget和IServiceProvider的區別?
- 23. BUTTON1_MASK和BUTTON1_DOWN_MASK的區別是什麼?
- 24. CCCallFunc和CCCAllFuncN的區別是什麼
- 25. CookieContainer和Response.Cookies的區別是什麼?
- 26. air + iOS:iPad1和iPad2的區別是什麼
- 27. Zend_Cache_Frontend_Capture和Zend_Cache_Frontend_Page的區別是什麼
- 28. IOS是什麼objc_getClass和objc_lookUpClass的區別
- 29. $(「」)和$ .find(「」)之間的區別是什麼?
- 30. jquery和jQuery UI的區別是什麼?
是我的回答夠好嗎?你仍然有開放的問題? :) – nburk 2014-11-06 15:33:02