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 子类

在 Swift 中将存储属性添加到 NSManagedObject 的子类

如何在 NSManagedObject 子类中使用 Transformable 属性作为其实际类型?