Objective c 使用核心数据区分UITableViewCells

Objective c 使用核心数据区分UITableViewCells,objective-c,core-data,uitableview,many-to-many,Objective C,Core Data,Uitableview,Many To Many,我有两个实体,Note和Tag,它们具有多对多关系。 我希望能够点击一个便笺并拥有一个UITableView,其中填充了所有存在的标记,并且所有与点击的便笺有关系的标记的右侧都有一个UITableViewCellAccessoryCheckmark 我试着获取两个数组,一个是包含所有标记的数组,另一个是包含相关标记的数组。然后我做了这样的事情: for (int i = 0; i < [self.tagArray count]; i++) { Tag *new = [self.t

我有两个实体,Note和Tag,它们具有多对多关系。 我希望能够点击一个便笺并拥有一个UITableView,其中填充了所有存在的标记,并且所有与点击的便笺有关系的标记的右侧都有一个UITableViewCellAccessoryCheckmark

我试着获取两个数组,一个是包含所有标记的数组,另一个是包含相关标记的数组。然后我做了这样的事情:

 for (int i = 0; i < [self.tagArray count]; i++) {
    Tag *new = [self.tagArray objectAtIndex:i];
    if ([self.all containsObject: new])
    {
        new.isIn = TRUE;
    }
    else {
        new.isIn = FALSE;
    }

}
在Tag.m中:

@synthesize isIn;

但我觉得这是错误的做法。有谁能想出更好的解决方案吗?

根据我的评论,如果您要显示所有的标签,您不需要预先检查标签是否应该有复选标记

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{
    // not going to go into basic cell generation logic here
    Tag *currentTag = [self.tagArray objectAtIndex:indexPath.row];
    if([self.all containsObject: currentTag])
    {
       // checkmark
    }
    else
    {
       // no checkmark
    }
    return cell;
}

这些实体是否存储在核心数据中?或者在记忆中产生。如果它们存储在核心数据中,是否应该为您填充
isIn
属性?您是否也会显示所有标记?如果你是。。您不需要预先检查此信息。我将发布一个例子。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{
    // not going to go into basic cell generation logic here
    Tag *currentTag = [self.tagArray objectAtIndex:indexPath.row];
    if([self.all containsObject: currentTag])
    {
       // checkmark
    }
    else
    {
       // no checkmark
    }
    return cell;
}