一个实体可以与另一个实体有多种关系吗?

时间:2013-11-21 09:27:21

标签: objective-c json core-data

我有一个关于Coredata实体关系的问题。一个实体可以与另一个实体有多个关系。我有以下json:

{
"user": {
    "user_id": "192837190283",
    "email": "ceo@me.com",
    "first_name": "Tim",
    "last_name": "Cook",
    "home_address": {
        "street": "Downing Street",
        "number": "11",
        "city": "London",
        "state": "Greater London",
        "country": "United Kingdom",
        "zip": "12323423",
        "location": {
            "latitude": 3.1,
            "longitude": 3.2
        }
    },
    "work_address": {
        "street": "Amphitheatre Parkway",
        "number": "1600",
        "city": "Mountain View",
        "state": "California",
        "country": "United States",
        "zip": "94043",
        "location": {
            "latitude": 3.1,
            "longitude": 3.2
        }
    }
}
}

我在Coredata中有以下模型:

enter image description here 不过,当我解析json时,它仍然只保存一个地址。我对关系做错了吗?请建议。提前谢谢。

1 个答案:

答案 0 :(得分:0)

这是一个非常奇怪的模型。首先,阅读我之前关于如何在Core Data中创建父子关系的答案。

Setting up a parent-child relationship in Core Data

然后,关于你的模型,我会稍微修改一下。特别是,我会像你一样UserAddressLocation

用户将通过名为addresses的关系拥有一个或多个地址。地址将通过称为location的一对一关系来定位。

最重要的是,删除homeUserworkUser关系并添加一个布尔属性(例如isWorkAddress),让您指定地址是家还是工作一。此属性将添加到Address实体。解析JSON时,您将以正确的方式设置属性。

它对你有用吗?