核心数据类与模型

FTL*_*Guy 3 core-data objective-c

我最近开始在Objective-C中编程,我现在正在研究Core Data.但是,我对在Core Data中定义模型本身的确切内容感到困惑.

这就是我的意思:假设我使用图形模型构建器创建了一组具有一组属性的实体.然后我让Xcode为相应的类生成代码.接下来,我想在类中创建一个仅在运行时使用的属性,并且不需要由Core Data存储或检索.所以,我在类中添加一个变量和一个相应的属性(在实现中合成它)

新属性未在模型构建器中定义,但它是在从NSManagedObject派生的类中定义的.如何处理核心数据?类中列出的属性是在"模型"中定义属性还是仅在模型构建器中定义的属性定义模型?

类似地,我想在类文件中添加一个基于枚举的属性,当获取或设置时,访问或更改模型中的NSNumber属性.如果没有Core Data将属性视为要存储和检索的属性,我可以这样做吗?

谢谢!

Dan*_*ull 6

您可以将自定义属性(和变量)添加到为NSManagedObjects生成的代码中,就像添加任何其他类一样.这些不会成为模型的一部分,而是在内存中暂时存在.值得注意的是,如果托管对象被释放,那么内存中的值也会被释放.

如果您只是为底层数据实现自定义访问器,我建议的一个提示是在相关托管对象上创建一个类别.在访问器中,您可以访问基础NSNumber并将其转换为您在类别标题中定义的枚举.

如果需要重新生成托管对象的代码,因为模型更改,您只需删除为托管对象生成的类并重新生成它,而无需与您添加的任何自定义代码合并.只要底层存储属性保持不变,您添加的类别将完全相同.

您可以在ADC 的Objective-C编程语言指南中找到有关类别的更多信息.