[英]How NSNotification center manage it observe objects?
在舊的蘋果guid中說:“例如,當您在通知中心注冊對象時,通知中心存儲對該對象的弱引用,並在發布適當的通知時向其發送消息。當對象被釋放時,您需要以便在通知中心注銷它,以防止通知中心將任何其他消息發送到不再存在的對象。“在swift 4中,我們有兩種觀察方法:1)NotificationCenter.default.addObserver(object,選擇器:2) NotificationCenter.default.addObserver(forName:...(帶塊))在第二種情況下,通知中心捕獲塊並保留其中的所有內容,因此在其中使用self時應格外小心
我試圖找到有關以下情況的信息:在1種情況下,觀察者對象是如何由通知中心管理的,它仍然是弱引用,還是變為強引用,如果不及時注銷,可能會導致內存泄漏?
根據addObserver(_:selector:name:object :)的文檔:
如果您的應用程序針對iOS 9.0和更高版本或macOS 10.11和更高版本,則不需要在其dealloc方法中注銷觀察者。 否則,應在釋放觀察者或傳遞給此方法的任何對象之前,調用removeObserver(_:name:object :)。
而且由於調用了觀察者的dealloc
,所以這里沒有內存泄漏。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.