0

我有两个实体,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;
    }

}

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

在 Tag.h 中:

@property BOOL isIn;

在 Tag.m 中:

@synthesize isIn;

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

4

1 回答 1

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;
}
于 2012-09-26T21:13:50.153 回答