我有一个 UITableView,它通过以下方式添加核心数据中的信息:
- 标题中添加了各种名称的“类别”
- 与类别相对应的名称应加载到类别下方的单元格中
现在,我的标题加载了正确的名称以及添加的正确数量的节和行。但是 - Core Data 的结果作为 NSSet 返回,因此我无法根据 indexPath.row 将每个名称添加到单元格中。
有什么建议吗?供引用:
cell.textLabel.text = [NSString stringWithFormat:@"%@",[[[dataToUse objectAtIndex:indexPath.section]valueForKey:@"heldBy"]valueForKey:@"name"]];
将适当的名称集返回到相应部分的每个单元格,但它会返回每个单元格的整个名称集。我只想根据每个名称所属的行来添加每个名称。我可以通过将 NSSet 转换为数组来解决这个问题,但由于创建了多个集合(因为有多个类别),我不知道如何做到这一点。
编辑:我通过执行以下操作解决了问题,但我仍然有兴趣知道最好的做法是什么。
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
它的设计正是为了满足您的需求。对于像您这样简单的情况,您只需要根据模型关系将数据组织成多个部分,它将通过自动管理获取、编辑、缓存等来减轻您肩上的大量负担。您可以找到 a nice tutorial here当然还有official documentation here .
关于ios - 将 NSSet 中的项目添加到 UITableView(将 NSSet 转换为多个数组?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17140121/