我是否必须在NSManagedObject didTurnIntoFault中调用super?

时间:2009-06-19 12:50:17

标签: cocoa core-data

我必须在didTurnIntoFault中拨打超级电话吗?我在文档中找不到任何指示。

- (void)didTurnIntoFault {
  [super didTurnIntoFault]; // Do I have to call super?
  // ...
}

2 个答案:

答案 0 :(得分:0)

不,我不相信。 didTurnIntoFault的目的是让您有机会释放您可能持有的任何实例变量(特别是对于瞬态值)。虽然它可以用作dealloc子类的NSManagedObject的替代,但这是因为NSManagedObject的生命周期与普通NSObject完全不同。因此,虽然它与dealloc的用途大致相同,但它的工作方式却完全不同。

当然,如果您继承自己的NSManagedObject子类,则需要在那里调用[super didTurnIntoFault]

那就是说,我会想象NSManagedObject的实施可能是一个无操作,所以我真诚地怀疑无论如何调用它都有任何伤害。此外,因为它没有任何伤害,它可以帮助你记住在真正重要时调用它。

答案 1 :(得分:0)

如果您继承NSManagedObject并覆盖-didTurnIntoFault,则必须将消息发送给super。

请参阅NSManagedObject类引用的Subclassing Notes