2012-09-26 33 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