Iphone 如何选择";“儿童”;子视图中的实体?

Iphone 如何选择";“儿童”;子视图中的实体?,iphone,core-data,Iphone,Core Data,我正在尝试管理一个数据的深入列表。我有一个实体,联系人,它与另一个实体,规则,有一对多的关系。在我的根视图控制器中,我使用“获取结果”控制器来管理和显示联系人列表。当点击联系人时,我会将一个新的视图控制器推到堆栈上,其中包含联系人的规则列表 我还没有弄清楚如何使用第二个“获取结果”控制器来显示规则,因此我使用以下方法: // create a set of the contact's rules rules = [NSMutableSet set]; rules = [self.contact

我正在尝试管理一个数据的深入列表。我有一个实体,联系人,它与另一个实体,规则,有一对多的关系。在我的根视图控制器中,我使用“获取结果”控制器来管理和显示联系人列表。当点击联系人时,我会将一个新的视图控制器推到堆栈上,其中包含联系人的规则列表

我还没有弄清楚如何使用第二个“获取结果”控制器来显示规则,因此我使用以下方法:

// create a set of the contact's rules
rules = [NSMutableSet set];
rules = [self.contact mutableSetValueForKey:@"rule"];

// create an array of rules from the set
arrayOfRules = [NSMutableArray arrayWithCapacity:[rules count]];
for (id oneObject in rules)
     [arrayOfRules addObject:oneObject];

// sort the array of rules
NSSortDescriptor *descriptor = [[NSSortDescriptor alloc] initWithKey:@"phoneLabel" ascending:YES];
[arrayOfRules sortUsingDescriptors:[NSArray arrayWithObject:descriptor]];
[descriptor release];
我创建了一组规则,然后用它来创建一个排序规则数组。然后,我使用这两个集合填充分组表视图。所有这些似乎都正常工作

这是我的问题:在这个视图中,用户可以执行几个不同的操作,其中大多数操作都要求我知道使用了哪个规则。但我不知道怎么才能做到。例如,假设一个用户想要删除一条规则。在我看来,正确的方法是

[rules removeObject:ruleObjectToBeRemoved]
…但我不知道如何指定要删除的规则对象。我希望所有这些都有意义


像往常一样,提前感谢您提供的任何建议。

我想您一定保留了对ArrayFrules的引用。如果是,当用户点击cell方法时

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
应调用tableViewDelegate的。如果是这样,您可以使用indexPath获取相应的规则对象,如下所示

Rule* yourRule = [arrayOfRules objectAtIndex:indexPath.row];
当然,如果您有多个节,则需要获取与所点击的单元格对应的数组(使用indexPath.section)

实现您希望实现的目标的简单方法是:

[arrayOfRules removeObjectAtIndex:indexPath.row];
希望这有帮助, 保罗