我已经研究了一段时间,我认为有很多解决方案,但我不确定它们是那么好。可能是我错过了一些东西: - )
我有两张桌子。对于TableA中的每条记录,TableB中有多条记录。即一对多的关系。我已经将它映射到核心数据中并生成了类。到目前为止一切都很好。
我的基于表格视图的UI需要如下所示:
Section 1
Cell 1: Table A: field1
Cell 2: Table A: field2
-----
Section 2
Cell 1: Table B: record 1: field1
Cell 2: Table B: record 2: field1
....
当我在tableView:cellForRowAtIndexPath:
时,它很容易处理第1节单元格,因为它们与单个表格A记录的字段不同。第2节细胞是不同的。每次调用tableView:cellForRowAtIndexPath:
时,我都需要从表A的NSSet中获取正确的表B记录。这就是问题所在。
NSSet doco表示它没有保留订单。这意味着如果我想要一个基于索引的特定记录,我有几种可能的技术:
这些答案都不是很好。有一个更好的方法吗?
答案 0 :(得分:1)
如果您只是想要对象,请使用NSSet访问器。
如果您希望对象排序,请设置NSFetchRequest并添加相应的NSSortDescriptors。
然后,只需使用executeFetchRequest:error:
更好,因为这是专门用于tableView的,所以使用NSFetchedResultsController来填充表视图。这就是它的用途。
答案 1 :(得分:0)
我最终将NSArray存储在控制器中并将NSSet记录排序到其中。