Objective c 使用核心数据区分UITableViewCells
我有两个实体,Note和Tag,它们具有多对多关系。 我希望能够点击一个便笺并拥有一个UITableView,其中填充了所有存在的标记,并且所有与点击的便笺有关系的标记的右侧都有一个UITableViewCellAccessoryCheckmark 我试着获取两个数组,一个是包含所有标记的数组,另一个是包含相关标记的数组。然后我做了这样的事情:Objective c 使用核心数据区分UITableViewCells,objective-c,core-data,uitableview,many-to-many,Objective C,Core Data,Uitableview,Many To Many,我有两个实体,Note和Tag,它们具有多对多关系。 我希望能够点击一个便笺并拥有一个UITableView,其中填充了所有存在的标记,并且所有与点击的便笺有关系的标记的右侧都有一个UITableViewCellAccessoryCheckmark 我试着获取两个数组,一个是包含所有标记的数组,另一个是包含相关标记的数组。然后我做了这样的事情: for (int i = 0; i < [self.tagArray count]; i++) { Tag *new = [self.t
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.m中:
@synthesize isIn;
但我觉得这是错误的做法。有谁能想出更好的解决方案吗?根据我的评论,如果您要显示所有的标签,您不需要预先检查标签是否应该有复选标记
- (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;
}
这些实体是否存储在核心数据中?或者在记忆中产生。如果它们存储在核心数据中,是否应该为您填充
isIn
属性?您是否也会显示所有标记?如果你是。。您不需要预先检查此信息。我将发布一个例子。
- (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;
}