在NSManagedObject
的子類中,當撤銷一些最初創建相關對象的代碼時,我的重寫實現willTurnIntoFault
被調用兩次。嘗試在密鑰路徑上雙重註銷KVO時,會導致崩潰。willTurnIntoFault被多次調用,導致崩潰
蘋果文件表示這是取消註冊KVO的正確地點。
一點上下文 - 撤銷操作涉及從它的超級視圖中刪除模型的相應視圖。該視圖保留了它的模型。
所以我的問題是:什麼樣的程序員錯誤可導致willTurnIntoFault
被調用兩次在NSManagedObject
的子類?
注意:以前我在這個類中覆蓋了dealloc
,但後來才意識到這不推薦用於NSManagedObject的子類。我已將此代碼移至-didTurnIntoFault
。我目前不覆蓋蘋果文檔說你不應該覆蓋的任何其他方法。
良好的觀察(雖然來自硬敲門學院)。 – 2016-09-17 23:19:47