假设有一个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时,我应该如何处理这种情况?
答案 0 :(得分:2)
创建一个Person
实体,其to-many
(如果只有一个电话#,则为一对一)与Phone
实体的关系。
Phone
实体与Person
实体具有一对一的关系
此外,它将具有您描述的内部结构(country_code,area_code,number)。
您不需要id
属性来创建CoreData实体。
您可以将关系设置为“级联”,以便在删除某个人时删除所有相关的电话号码。
当您遍历JSON响应时,请将“phone”键读入Phone
实体,将其person
属性读取给您当前正在遍历的人。