我有两个实体,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;
我觉得这是错误的做法。谁能想到更好的解决方案?
答案 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;
}