NSManagedObject 子类属性
Posted
技术标签:
【中文标题】NSManagedObject 子类属性【英文标题】:NSManagedObject subclass properties 【发布时间】:2012-06-13 23:32:17 【问题描述】:我有一个 NSObject 的子类,它充当我的应用程序的主要数据模型,具有许多属性和方法。我决定要使用 Core Data 来保存这些数据,所以我将子类更改为 NSManagedObject。我在 .xcdatamodeld 中创建了实体,并将其与我的 NSManagedObject 子类链接。我想知道是否可以在我的子类中保留未保存的属性?例如,这个类包含一个 NSOperationQueue 属性,但我当然不希望 Core Data 与这个属性交互。
【问题讨论】:
【参考方案1】:当您从实体自动创建(或重新创建)NSManagedObject 时,您会丢失该文件中的任何其他内容。人们通常使用类别来自定义 NSManagedObjects 的逻辑。它允许您在不更改该文件中的代码的情况下向默认 NSManagedObject 添加自定义!
干净整洁。
此链接可能会有所帮助:http://developer.apple.com/library/ios/#documentation/cocoa/conceptual/objectivec/chapters/occategories.html
【讨论】:
对于一个只是将模型的业务逻辑添加到类中的类别,您会使用哪种命名方案? 以下是类别的命名约定示例:cupsofcocoa.com/2011/03/27/objective-c-lesson-8-categories【参考方案2】:是的,在 NSManagedObject 子类中拥有自己的属性和方法是完全可以的。
此外,如果您希望这些属性中的任何一个利用 Core Data 缓存机制,您可以将它们作为瞬态添加到您的实体模型中。
【讨论】:
以上是关于NSManagedObject 子类属性的主要内容,如果未能解决你的问题,请参考以下文章
为啥我的类没有 NSManagedObject 属性时会出现错误?
为 NSManagedObject 子类的属性构建灵活的编辑表单
NSManagedObject @dynamic 属性不再被识别
具有未在模型中定义的附加属性的 NSManagedObject 子类