【发布时间】:2010-05-22 00:47:40
【问题描述】:
我有一个相当简单的架构。本质上,运行 数据(其中运行保存数据,例如温度,从某种传感器采样)。
现在,传感器似乎可以进行不止一种测量(例如温度和湿度)。因此,一次 Run 可能有多个数据样本。
因此,运行 > 样本和样本 数据。 (为了简单起见,我暂时将 Run Data 留在原处。)
如果我创建一个新的映射模型,那么一切正常 - 除了没有创建新的样本,运行和样本之间也没有建立样本和数据之间的关系。
我正在尝试使用映射模型来迁移我的模型,但即使对生成的映射模型进行最轻微的更改也会导致 Cocoa 错误 134110。
例如,如果我采用“Sample”映射(没有 Source)并将其 Source 设置为“Run”(以便我可以适当地设置 Sample 的反向关系“run”),则映射将其名称更改为“ RunToSample”。此映射中处理了两种关系:数据和运行。 data 属性自动设置为
FUNCTION($manager, "destinationInstancesForEntityMappingNamed:sourceInstances:" , "DataToData", $source.dataSet)
按照这个例子,我将运行属性设置为
FUNCTION($manager, "destinationInstancesForEntityMappingNamed:sourceInstances:" , "RunToRun", $source)
同样,我将 RunToRun 中的 'sample' 属性映射设置为
FUNCTION($manager, "destinationInstancesForEntityMappingNamed:sourceInstances:" , "RunToSample", $source)
和DataToData中的'sample'属性到
FUNCTION($manager, "destinationInstancesForEntityMappingNamed:sourceInstances:" , "RunToSample", $source.run)
那么,我想知道,哪里出了问题?我尝试了各种排列,例如未指定“反向”关系。但无论如何,我都会继续收到相同的错误 (134110)。
我想这比看起来要容易得多,而且我缺少一些基本但次要的部分。我也尝试过继承 NSEntityMigrationPolicy 并覆盖 -createDestinationInstancesForSourceInstance: 但这些努力得到了大致相同的结果。
提前感谢任何指针或(相关:-)建议。
编辑:为简单起见,我已将所有关系标记为可选。不过,最终我可能会选择其他方式。
【问题讨论】:
标签: iphone ios core-data core-data-migration mapping-model