我有一个NSFetchedResultsController,我有排序描述符数组的第一个排序描述符和sectionNameKeyPath一样,因此给了我不同的部分。但我希望第二个排序描述符是不同的pr部分。有没有一个很好的方法可以做到这一点,而不必将数据推送到数组,然后我再次排序?
干杯
的Nik
答案 0 :(得分:0)
您已建议在每个部分内部使用不同的数组。这不是一个坏方法,因为实际上你只需要担心显示对象的索引路径和真实对象之间的映射。
换句话说,您知道表视图正在显示的项目数量很少,因为它会向控制器询问这些项目。您不必直接从FRC中的获取结果数组中将其退回。
获取索引路径,找出正在请求的部分,并获取该部分的预先排序的行。由于数据非常小,因此您可以根据要求随时对它们进行排序。
另一种方法是只向数据模型添加另一个属性。此属性表示节中的排序顺序,您可以将其设置为您想要的任何值,因为整个数组将按部分排序,然后按该属性排序。
此外,您可能会发现使用代理对象作为获取结果控制器的前端更容易。与“多数组”方法类似,您只需使用一个代理对象,当表视图请求该节时,该对象在每个节上应用唯一排序描述符,并以自己的排序顺序返回对象。