在iOS Core Data中映射嵌入对象

时间:2013-07-04 02:07:15

标签: ios json core-data value-objects embedded-object

假设有一个Web服务返回这样的JSON响应:

{
   "id": "123",
   "name": "John Doe",
   "phone": {
      "country_code": "1",
      "area_code": "11",
      "number": "55544433"
   }
}

这是描述一个Person实体,但在这个实体中,有一个包含嵌入对象的phone属性。

电话不是实体,它不是由id引用的,它完全包含在此Person实体的范围内。但是,我希望将它映射到我的代码中的Phone @interface(例如,它可能有一个方法“formatAsString”,它返回一个格式化的字符串,如下所示:“+ 1(11)55544433”)

将模型映射到iOS Core Data时,我应该如何处理这种情况?

1 个答案:

答案 0 :(得分:2)

创建一个Person实体,其to-many(如果只有一个电话#,则为一对一)与Phone实体的关系。
Phone实体与Person实体具有一对一的关系 此外,它将具有您描述的内部结构(country_code,area_code,number)。

您不需要id属性来创建CoreData实体。

您可以将关系设置为“级联”,以便在删除某个人时删除所有相关的电话号码。

当您遍历JSON响应时,请将“phone”键读入Phone实体,将其person属性读取给您当前正在遍历的人。