首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么时候CoreData中的瞬态属性应该包含在对象模型中?

什么时候CoreData中的瞬态属性应该包含在对象模型中?
EN

Stack Overflow用户
提问于 2009-11-14 13:07:23
回答 1查看 5K关注 0票数 9

我不清楚对瞬态特性的正确定义:

  1. 可以在对象模型中定义瞬态属性,然后在相关类中根据需要计算它们。
  2. 但是,如果您指定一个类并为任何瞬态属性定义任意的getter方法,而不在对象模型中声明它(只要该实体与模型中的该类相链接),那么一切都是一样的。

我的问题是:在对象模型中声明瞬态属性有什么好处?我只看到一个不利的一面:每次你添加一个瞬态属性(例如。"FormattedDate") persistentStore变得不兼容。

我遗漏了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-11-14 13:53:55

来自核心数据编程指南

如果不支持的属性是一个对象,那么在托管对象模型中,您将它的类型指定为未定义的类型,并且它是瞬态的。实现实体的自定义类时,不需要为属性添加实例变量--可以使用托管对象的私有内部存储。下面描述的实现需要注意的一点是,它们缓存瞬态值。这使得访问该值的效率更高--这对于变更管理也是必要的。如果定义了自定义实例变量,则应该在didTurnIntoFault中清除这些变量,而不是去分配或完成。

我认为这意味着“方便”和“将所有属性定义在一个地方--托管对象模型”。

至于MOM版本控制,核心数据模型版本控制和数据迁移编程指南说:

核心数据在版本控制方面的观点是,它只对影响持久性的模型特性感兴趣。

然而,它并没有澄清它对瞬态特性的立场。事实上,阐述该段的第二个要点听起来几乎是自相矛盾的。快速测试(带有"name“属性的简单"Foo”实体的新项目,使用多个foo保存文件,添加一个瞬态属性,再次运行,而foos全部加载,添加一个新foo,保存,关闭,重新打开)显示,实际上版本控制系统不考虑瞬态属性。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1734189

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档