ios – iphone NSManagedObject – 解除分配的正确方法?

我有一个NSManagedobject的子类,大多数属性是动态的(由托管对象创建),但我有一些辅助属性,它们被创建为@synthesize.

释放这些物体的正确方法是什么?

- (void)didTurnIntoFault
{
     [self.randomVar release];
     [super didTurnIntoFault];
}

要么

- (void)dealloc
{
     [self.randomVar release];
     [super dealloc];
}

解决方法

覆盖didTurnIntoFault并在那里释放它们.管理对象在出现故障时不一定要解除分配.

documentation

You are discouraged from overriding dealloc or finalize because didTurnIntoFault is usually a better time to clear values—a managed object may not be reclaimed for some time after it has been turned into a fault. Core Data does not guarantee that either dealloc or finalize will be called in all scenarios (such as when the application quits); you should therefore not in these methods include required side effects (like saving or changes to the file system,user preferences,and so on).

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...