问题描述
|
对于Xcode生成的Core Data受管对象,是否需要添加一个dealloc方法来释放变量?
因此,当我拥有适用于iPhone应用程序的核心数据模型并且让XCode生成托管对象类时,我注意到没有dealloc方法。我需要手动在dealloc方法中“释放”变量/属性吗?
我看到代码生成的托管对象类具有:
该属性在头文件中标记为“保留”
在实现文件中,使用\“ @ dynamic \”(即不是@sythesise)进行设置
谢谢
解决方法
您不需要(也不应该)修改这些生成的文件。 @dynamic意味着将在运行时提供属性实现。动态特性
,这有两个部分。对于您在模型中定义的属性,请勿在dealloc方法中释放它们。 Core Data正在为您管理这些数据。但是,如果将其他ivars添加到要生成的类中,则说您具有imageData属性,然后使用NSManagedObject子类中的UIImage来创建UIImage,则需要添加dealloc方法并像在Windows中那样释放它。任何其他对象。
我强烈建议您开始使用发电机。很好,因为它会生成机器文件和用户文件,以将为您自动处理的内容与自定义代码分开。
,尽管不需要释放Core Data托管属性,但应清除自定义Core Data子类创建的所有属性或实例变量。但是,您不能依靠dealloc在Core Data子类上进行调用。使用willTurnIntoFault执行必要的清理。