【问题标题】:Core Data InterMediate Entity核心数据中间实体
【发布时间】:2011-11-06 18:03:31
【问题描述】:

有3个实体

  1. 父亲---->姓名
  2. 儿子---->姓名
  3. 父子---->身份证

关系

  1. 父亲--->>父亲儿子
  2. 儿子--->儿子父亲
  3. 父子-->父---->>父子,子---->子父

我使用中间表来保存父子之间的关系。父子之间没有直接的关系。

现在,

我可以将父子关系保存到父子实体中。

  1. 我的主要问题是使用父子关系从 Son 实体访问 Son 名称。
  2. 使用父子关系从父实体访问父名。

所有信息都显示在tableview中。

当我在表格视图中选择父亲姓名时。 didselect 事件必须进入详细信息视图 并显示与父亲相关且与儿子相同的儿子名称列表。

【问题讨论】:

    标签: iphone core-data entity


    【解决方案1】:

    我不确定我是否 100% 理解您的问题,但这里是。 . .

    在核心数据方面,我假设你有类似的东西:

    • 父亲是一个实体,其属性名为fatherSons
    • FatherSon 是一个实体,具有一个名为“儿子”的属性和一个名为“父亲”的属性
    • Son 是一个具有名为“fatherSon”的属性的实体

    所以,从一个到另一个应该很简单:

    // We start with a father
    Father *father = <get the father from core data>
    
    // Get a set of all the sons that father ]has
    NSSet *sons = father.fatherSons;
    
    // Output each son and his father
    for (Son *son in sons)
        NSLog(@"%@ has father %@", son, son.fatherSon.father);
    

    所以在你的表格视图中你会使用

    son.fatherSon.father
    

    显示特定儿子的父亲和

    father.fatherSons
    

    获取指定父亲的所有儿子的列表


    只是出于兴趣。 . .

    为什么你必须使用中间表——当然应该是

    Father has many Sons
    Son has one Father
    

    (好吧,从技术上讲,我应该有 Child 而不是 Son,但是嘿,我不知道你的应用是什么!)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多