Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios KVO和NSNotificationCenter的正确用途和区别是什么?_Ios_Macos_Cocoa_Nsnotificationcenter_Key Value Observing - Fatal编程技术网

Ios KVO和NSNotificationCenter的正确用途和区别是什么?

Ios KVO和NSNotificationCenter的正确用途和区别是什么?,ios,macos,cocoa,nsnotificationcenter,key-value-observing,Ios,Macos,Cocoa,Nsnotificationcenter,Key Value Observing,KVO和NSNotificationCenter都可以处理值更改。他们之间有什么区别?它们的正确用法是什么?KVO专门用于更改属性 NSNotificationCenter可以在更广泛的上下文中用于各种通知,而不仅仅是那些处理属性值更改的通知。此外,您还可以创建自己的通知,以发送给以前作为观察者订阅此通知的任何其他感兴趣的对象 要创建自定义通知,请使用: [[NSNotificationCenter defaultCenter]postNotificationName:@“SomethingOc

KVO和NSNotificationCenter都可以处理值更改。他们之间有什么区别?它们的正确用法是什么?

KVO专门用于更改
属性

NSNotificationCenter可以在更广泛的上下文中用于各种通知,而不仅仅是那些处理属性值更改的通知。此外,您还可以创建自己的通知,以发送给以前作为观察者订阅此通知的任何其他感兴趣的对象

要创建自定义通知,请使用:
[[NSNotificationCenter defaultCenter]postNotificationName:@“SomethingOccessed”对象:nil]

然后,另一个类可以使用以下代码订阅此通知:
[[NSNotificationCenter defaultCenter]添加观察者:自选择器:@selector(SomethingHappendSomeWhere:)名称:@“SomethingOccessed”对象:nil]


每当方法
somethingsomewhere:
发生时,将调用
NSNotification
作为参数。

要扩展此答案,还可以跨应用程序发送NSNotification。我喜欢认为通知在某些对象可能正在或可能不正在侦听更改的情况下是有用的,但广播该更改很重要。嗯,那不是真的,是吗?那怎么办?应用程序A发送通知,应用程序B在后台接收通知,然后执行自定义操作?那绝对不可能,。。。也许你说的是
UILocalNotification
。。。?!这又是一个完全不同的故事。很抱歉不清楚,我指的是OS X上的NSDistributedNotificationCenter,我想这在iOS上是不可用的。好吧,谢谢你的提示!!!:)我的回答够好吗?你还有悬而未决的问题吗?:)