【发布时间】:2013-06-17 03:43:05
【问题描述】:
我有一个 UITableView,它通过以下方式从核心数据中添加信息:
- 在标题中添加了各种名称的“类别”
- 与类别对应的名称应加载到类别下方的单元格中
现在我有标题加载正确的名称和正确数量的部分和要添加的行。但是 - Core Data 的结果作为 NSSet 返回,因此我无法根据 indexPath.row 将每个名称添加到单元格中。
有什么建议吗?供参考:
cell.textLabel.text = [NSString stringWithFormat:@"%@",[[[dataToUse objectAtIndex:indexPath.section]valueForKey:@"heldBy"]valueForKey:@"name"]];
将适当的名称集返回到相应部分的每个单元格,但它会将整个集合返回到每个单元格。我只想根据它所属的行添加每个名称。我可以通过将 NSSet 转换为 Array 来解决这个问题,但是由于创建了多个集合(因为有多个类别),我不知道该怎么做。
编辑:我通过执行以下操作解决了我的问题,但我仍然有兴趣知道最好的方法是什么。
NSSet *daset = [[dataToUse objectAtIndex:indexPath.section]valueForKey:@"heldBy"];
NSMutableArray *addToLabel = [[NSMutableArray alloc]init];
int i = 0;
for(NSSet *contact in daset) {
[addToLabel insertObject:[contact valueForKey:@"name"] atIndex:i];
NSLog(@"%@",addToLabel);
i++;
}
cell.textLabel.text = [NSString stringWithFormat:@"%@",[addToLabel objectAtIndex:indexPath.row]];
【问题讨论】:
-
NSFetchedResultsController完全符合您的需求(根据您的 CoreData 模型图将您的行组织成部分)。 Take a look at the docs here -
我的开发伙伴告诉我情况就是这样。我将坚持我的解决方案,这样我才能继续前进,但它是我的首要任务,让事情尽快恢复。谢啦!如果您将其作为答案发布,我会将其标记为已接受。
-
不客气。我已经添加了答案,很高兴你发现它很有用。
标签: ios objective-c uitableview nsarray nsset