2012-09-26 36 views
0

我有两个实体,注释和标记,它们具有多对多的关系。 我希望能够点击一个笔记,并有一个UITableView填充所有存在的标签,并且所有与点击笔记具有关系的标签在右侧有一个UITableViewCellAccessoryCheckmark。使用核心数据区分UITableViewCells

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

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.h:

@property BOOL isIn; 

在Tag.m:

@synthesize isIn; 

我有一种感觉,这是错误的方法。任何人都可以想出更好的解决方案吗

+0

这些实体是否存储在核心数据中?或以某种方式在内存中生成。如果它们存储在核心数据中,那么不应该为你填充'isIn'属性? – Dima

+0

你是不是也在显示所有的标签?如果你是..你不需要预先检查这个信息。我会举一个例子。 – Dima

回答

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; 
} 
+0

谢谢,它的作品! – averageUsername123