1

在此post有關垃圾回收的作者指出:不再需要刪除可可中的通知觀察者?

在Mac OS X 10.6及更高版本NSNotificationCenter是弱引用所以 你不再需要做在你的代碼下面

[[NSNotificationCenter defaultCenter] removeObserver:self 
     name:kObservationName 
     object:nil]; 

這是正式記錄的地方嗎?的removeObserver:文檔仍然說:

一定要調用這個方法(或removeObserver:之前 notificationObserver或 的addObserver指定的任何目標對象:):名稱選擇:名稱:對象:被釋放。

+0

This SO answer also also not that it's not necessary:http://stackoverflow.com/a/34513/143378 – hpique

回答

2

如果你正在建設一個垃圾回收應用,那麼它是真實的,你不需要註銷的對象接受觀察或通知。

但現在垃圾回收已被棄用,而不是您應該用於新項目的東西。

如果您使用的是ARCMRC,那麼您仍然需要刪除對象。最好的地方通常在dealloc方法。

+0

ARC不支持調零弱引用嗎?似乎NSNotificationCenter可能是ARC下的弱引用? – nielsbot

+0

它支持歸零弱引用,但您仍然需要自己刪除觀察值。 – Abizern

+0

@Abizem對此的任何來源? – hpique