对于Xcode生成的Core Data托管对象,我是否需要添加dealloc方法来释放变量?

时间:2011-05-25 00:11:12

标签: iphone ios core-data memory-management nsmanagedobject

对于Xcode生成的Core Data托管对象,我是否需要添加dealloc方法来释放变量?

因此,当我的iPhone应用程序拥有核心数据模型时,我让XCode生成托管对象类,我注意到没有dealloc方法。我是否需要手动将dealloc方法“释放”到变量/属性?

我看到代码生成的托管对象类有:

  • 该属性在标题文件
  • 中标记为“保留”
  • 在实现文件中设置为“@dynamic”(即不是@sythesise)

感谢

3 个答案:

答案 0 :(得分:4)

您不需要(也不应该)修改这些生成的文件。 @dynamic意味着将在运行时提供属性实现。 Dynamic Properties

答案 1 :(得分:3)

这有两个部分。对于您在模型中定义的属性,请不要在dealloc方法中释放它们。 Core Data正在为您管理这些。但是如果你将其他ivars添加到生成的类中,比如你有一个imageData属性,然后在你的NSManagedObject子类中创建一个UIImage,那么你需要添加dealloc方法并像在任何其他对象。

我强烈建议您开始使用mogenerator。这很好,因为它会生成一个机器文件和一个用户文件,以便将自动处理的内容与您的自定义代码分开。

答案 2 :(得分:0)

虽然您不需要发布Core Data托管属性,但您应该清理自定义Core Data子类创建的任何属性或实例变量。但是,您不能依赖于在核心数据子类上调用dealloc。使用willTurnIntoFault执行必要的清理工作。