当用户从不同的tableview输入数据时,更新/设置Core Data中的关系

时间:2011-10-24 14:42:51

标签: iphone core-data many-to-many one-to-many key-value-observing

我的核心数据应用中有3个实体:条件--->> Rank(有1个属性:criteriaRank)<< --- Option

让用户在tableview中输入几个选项​​,然后转到另一个tableview,在那里他们输入一些条件。我的应用程序假设行为的方式是,对于用户输入的每个条件,它应该创建一个Rank对象,以便当用户返回选项tableview并选择一个选项时,它应该允许他们对他们输入的每个条件进行排名

现在,当我创建新条件时,我按照以下方式设置它,

//Create new Criteria and set its context
Criteria *newCriteria = [NSEntityDescription insertNewObjectForEntityForName:@"Criteria" inManagedObjectContext:context];


for (Option *anOption in sortedOptions) {
    Rank *newCriteriaRank = [NSEntityDescription insertNewObjectForEntityForName:@"Rank" inManagedObjectContext:context];

    [newCriteria addRankingsObject:newCriteriaRank];
    [anOption addRankingsObject: newCriteriaRank];
}

但是,如果我必须返回并添加另一个选项呢? 我想我要问的是什么是设置关系的好方法,以便在另一方改变时更新每一方。

我查看了KVO和Notifications,但我不确定从哪里开始。

感谢。

1 个答案:

答案 0 :(得分:1)

选择您的.xcdatamodel,选择其中一个实体。在关系下,选择有问题的关系,然后选择反向。这有助于维持您的RFI。

这假设您在指向另一个实体的每个实体上都有一个关系。如果两个实体之间没有关系,那么你必须添加一个实体才能使反向工作正常。