使用核心数据区分UITableViewCells

时间:2012-09-26 20:12:11

标签: objective-c core-data uitableview many-to-many

我有两个实体,Note和Tag,它们具有多对多的关系。 我希望能够点击一个Note并拥有一个UITableView,其中填充了所有存在的标签,并且所有与被点击的Note有关系的标签在右侧都有一个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;
    }

}

isIn是Tag的一个属性,初始化如下:

在Tag.h中:

@property BOOL isIn;

在Tag.m中:

@synthesize isIn;

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

1 个答案:

答案 0 :(得分:1)

根据我的评论,如果您仍然显示所有标签,则无需预先检查标签是否应该带有复选标记。

- (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;
}