在NSManagedObject
的子类中,当撤销一些最初创建相关对象的代码时,我的重写实现willTurnIntoFault
被调用两次。尝试在密钥路径上双重注销KVO时,会导致崩溃。willTurnIntoFault被多次调用,导致崩溃
苹果文件表示这是取消注册KVO的正确地点。
一点上下文 - 撤销操作涉及从它的超级视图中删除模型的相应视图。该视图保留了它的模型。
所以我的问题是:什么样的程序员错误可导致willTurnIntoFault
被调用两次在NSManagedObject
的子类?
注意:以前我在这个类中覆盖了dealloc
,但后来才意识到这不推荐用于NSManagedObject的子类。我已将此代码移至-didTurnIntoFault
。我目前不覆盖苹果文档说你不应该覆盖的任何其他方法。
良好的观察(虽然来自硬敲门学院)。 – 2016-09-17 23:19:47