首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无逆关系的CoreData

无逆关系的CoreData
EN

Stack Overflow用户
提问于 2014-02-24 16:20:08
回答 2查看 169关注 0票数 0

我有一个数据模型,我没有逆关系,我想知道是否有办法解决这个问题,因为XCode在抱怨,苹果说实体应该有一个相反的。

我正在通过一个json获得一些玩家统计数据。为了简化它,Player对3种游戏模式有一些统计数据,只有3种游戏模式别名Kits。每个Kit都具有相同的属性,如namescoretime

json看起来像这样

代码语言:javascript
复制
{
  "player": {
    "uid": "123456",
    "name": "FooBar",
    "kits": {
      "support": {
        "id": 32,
        "score": 0,
        "stars": 0,
        "name": "Support",
        "time": 0,
        "spm": 0
      },
      "assault": {
        "id": 1,
        "score": 27624,
        "stars": 0,
        "name": "Assault",
        "time": 5329,
        "spm": 311.022706
      },
      "engineer": {
        "id": 2,
        "score": 44639,
        "stars": 0,
        "name": "Engineer",
        "time": 5758,
        "spm": 465.151094
      }
    }
  }
}

我的模特是这样的

这样,我就可以在代码中访问Kits

代码语言:javascript
复制
Player *player = ....
Kit *supportKit = player.kits.support;
...
// do whatever I want with the support kit

问题是,我的模型错了吗?我如何建模核心数据,其中的关系“一对多”,但限于一个给定的数字和哪里的有序物质。

干杯,简

EN

回答 2

Stack Overflow用户

发布于 2014-02-24 17:31:05

我在您的数据中只看到两个表-- player和"kit“,包括3种类型的id=1 =袭击、id=2 = engineer和id = 32是支持的。

您需要在这两个表之间建立逆关系,因此person_to_kit是1比多,而kit_to_person是1比1.这种关系是虚拟的,而不是基于任何特定的字段,尽管您的各个表将要求指定键。

票数 0
EN

Stack Overflow用户

发布于 2014-02-24 17:43:00

首先,在Core数据中始终应该有一个逆关系。即使你不使用这种关系--核心数据也会。

第二,核心数据不是数据库。它是一个可以持久化到数据库的对象映射。因此,您不需要外键或ids或其他任何东西来表示关系。关系细节由Core数据处理。

如果这不是一个需要迁移的现有应用程序,那么只需在模型中添加一个反向关系,并将其设置为逆关系。你不需要使用它,你不需要设置它或以任何方式触摸它。把它放在那里只是为了核心数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21993160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档