Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.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
Objective c 关于NSNotificationCenter方法的观察员保留/发布的官方说明在哪里?_Objective C_Cocoa_Nsnotificationcenter - Fatal编程技术网

Objective c 关于NSNotificationCenter方法的观察员保留/发布的官方说明在哪里?

Objective c 关于NSNotificationCenter方法的观察员保留/发布的官方说明在哪里?,objective-c,cocoa,nsnotificationcenter,Objective C,Cocoa,Nsnotificationcenter,NSNotificationCenter不保留/释放观察员。这是有道理的,我也经历过相关的问题 无论如何,今天我意识到我真的不确定这一点。没有说任何关于裁判计数的事 虽然它的讨论部分说,我们必须先注销观察家,然后才能解除其分配,但这并不意味着该中心不会保留它们。而且,中心的行为可能会改变释放时间 然后,我在文档中找不到任何东西 但在实践中,我们已经知道添加/删除观察者方法并不能根据经验保留观察者。未恢复引用是非常异常的行为,可能会导致严重的bug,那么我认为应该明确提到这一点 它在哪里?不,不保

NSNotificationCenter不保留/释放观察员。这是有道理的,我也经历过相关的问题

无论如何,今天我意识到我真的不确定这一点。没有说任何关于裁判计数的事

虽然它的讨论部分说,我们必须先注销观察家,然后才能解除其分配,但这并不意味着该中心不会保留它们。而且,中心的行为可能会改变释放时间

然后,我在文档中找不到任何东西

但在实践中,我们已经知道添加/删除观察者方法并不能根据经验保留观察者。未恢复引用是非常异常的行为,可能会导致严重的bug,那么我认为应该明确提到这一点


它在哪里?

不,不保留观察员。这就是为什么当您将一个对象设置为观察者时,必须确保它停止使用dealloc方法进行观察。从逻辑上讲,一个被观察的对象应该对观察者一无所知,不应该关心观察者,因此不应该对观察者有强烈的引用