2011-05-25 63 views
3

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

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

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

  • 的属性被标记为在实现文件“保留”在头文件
  • 它被设定为“@dynamic”(即不@sythesise)

感谢

回答

4

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

3

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

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

+0

谢谢 - re mogenerator用XCode4试了一下,发现了一些打嗝 - 好像它还没有在XCode4 - https://github.com/rentzsch/mogenerator/issues/48 – Greg 2011-05-25 01:38:00

+0

是的,自动支持不在那里但是,我没有任何问题手动触发AppleScript来生成文件。在对模型进行更改后,您只需记住这样做。现在我会忍受,因为我更喜欢为机器和用户代码提供单独的文件。 – McCygnus 2011-05-25 01:41:32

+0

哦,我明白你的意思了 - 我已经使用了一个“类别”来添加几个方法,其中一个由xcode – Greg 2011-05-25 02:42:46

0

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

相关问题