Core data 核心数据:XML数据库可能损坏的情况

Core data 核心数据:XML数据库可能损坏的情况,core-data,Core Data,我从核心数据中得到一个错误,无法解析值“”。 此值属于类型为double的非可选实体属性,默认值为0 什么会导致此类数据损坏 我认为您的问题“什么可能导致这种数据损坏”的答案是“错误” 核心数据将仅在需要时获取属性。这是一个特性,而不是bug,因为它有助于在幕后高效地管理内存和性能。但是,如果您使用核心数据提取返回的构造(例如,具有提取结果的数组)并构造XLM,则可以认为故障未被填充(即,核心数据不会进入永久存储以自动提取故障数据) 你观察到,一旦你明确地调用关系,一切都在那里,比如childr

我从核心数据中得到一个错误,无法解析值“”。 此值属于类型为double的非可选实体属性,默认值为0


什么会导致此类数据损坏

我认为您的问题“什么可能导致这种数据损坏”的答案是“错误”

核心数据将仅在需要时获取属性。这是一个特性,而不是bug,因为它有助于在幕后高效地管理内存和性能。但是,如果您使用核心数据提取返回的构造(例如,具有提取结果的数组)并构造XLM,则可以认为故障未被填充(即,核心数据不会进入永久存储以自动提取故障数据)

你观察到,一旦你明确地调用关系,一切都在那里,比如
children=entity.children
,就证实了这一论点


所以-不,不是访问观察员,而是错误造成的数据丢失

下面是另一个示例:(实体:EntTask;id:0x101a3df80;数据:)通过访问实体中的所有关系(集合),可以修复上面的数据故障。示例:NSSet*children=entity.children。这种魔力可能是由加载必要数据的访问观察者完成的。是的,错误是一种可能性。但是双重属性发生了什么?在XML中,数字表示为字符串(核心数据的本地DOCTYPE将其定义为ISO 8601)。因此“0”被重写为“”。是什么原因造成的?故障可能导致没有数据,而不是0。