带有NSFetchedResultsController的UITableView为没有对象的部分保留标题

时间:2013-01-27 21:49:36

标签: ios core-data nsfetchedresultscontroller nsmanagedobject

我有一堆NSManagedObjects被分成UITableView中的部分。

[Section Header 0]
[NSManagedObject]
[NSManagedObject]
[NSManagedObject]
[Section Header 1]
[NSManagedObject]
[Section Header 2]
[NSManagedObject]
[NSManagedObject]
[NSManagedObject]

用户可以基于每个部分编辑对象,包括删除它们。我要删除上面[NSManagedObject]中的[Section 1]。这会更新我的NSFetchedResultsController并删除行和节,包括节标题。

有没有办法让空白部分与任何对象保持一致?我已经考虑过设置一些代码来设置段的最小数量,但问题是它不会与NSFetchedResultsController同步。添加一个额外的部分只会将其添加到底部,但我想在第一部分之后添加它,无论之后是否有一个或多个部分。

这些对象都是服务器驱动的,所以我想这样做,我不会在那里有很多硬编码的部分。

感谢。

1 个答案:

答案 0 :(得分:0)

您应该在数据模型中包含属性或关系,以跟踪这些部分。看到您对用户进行分组,必须有一个可以在数据中建模的标准。

然后使用适当的NSFetchedResultsController初始化sectionNameKeyPath。使用Apple的普通香草代码显示部分信息(如果有)。

您在每个部分实际显示的内容仍由您决定。 (这是你在数据源方法中所做的)。但至少你可以有一个一致的部分系统和对象分组。