2015-07-02 29 views
2

我在UITableView的上下文中使用RLM通知,該UITableView是具有UIPageViewDelegate的UIViewController的子視圖。 ViewControllers是一種即時創建的,並在刷到下一個ViewController後被銷燬。但總是可以向後滑動一頁。出於這個原因,我不能銷燬通知令牌。 但後來我得到警告:警告:RLMNotificationToken發佈時未取消註冊

RLMNotificationToken released without unregistering a notification. You must hold on to the RLMNotificationToken returned from addNotificationBlock and call removeNotification: when you no longer wish to recieve RLMRealm notifications. 

我怎樣才能surpress這個警告,因爲這是毫無意義?

回答

2

解除分配通知令牌時記錄的原因是爲了防止用戶在希望接收通知期間意外忘記強制引用該通知令牌。

我不建議您在不想再收到變更通知時致電-[RLMNotificationToken stop]

要取消此警告,當您不再在意接收它們時(例如,當ViewController被解除時),應該調用removeNotification

即使取消分配通知令牌具有相同的效果,調用-stop將更好地傳達此處的意圖。

+0

這是正確的嗎?根據文檔:當通知令牌被解除分配時,通知自動取消註冊。我已經確認我的VCs deinit正在被調用。假設Realm只有一個弱引用,該令牌應該被釋放,所以它不應該導致內存泄漏。如果Realm具有很強的參考價值,那麼它不會意識到VC已經走了,所以它無法吐出消息。我認爲這個信息存在於那些忘記參考這個標記的人身上。 – Michael

+0

嗨邁克爾,謝謝你的評論,你是對的。我已經重寫了我的答案,以更好地反映正在發生的事情。如果您有更多問題,請告訴我。 – jpsim