0

我想使用BWOrderedManagedObject在Core Data中存储一个有序对象数组,使用NSFetchedResultsController来显示数据。在NSFetchedResultsController中使用BWOrderedManagedObject

但是,BWOrderedManagedObject的所有方法似乎只是返回一个有序对象数组; NSFetchedResultsController需要NSFetchRequest,并且排序NSFetchRequest的唯一方法是提供NSSortDescriptors的数组。

所以,我有点卡在这里如何使用BWOrderedManagedObjectNSFetchedResultsController - 有谁知道我怎么能成功地做到这一点?

(我大概可以create my own ordering key and use this与排序的描述,但我假设BWOrderedManagedObject会更稳健的...?)

回答

3

NSFetchedResultsController预计将获取从无序集和返回数组的信息。这就是为什么它需要一个排序描述符。它必须将无序集合转换为数组,并且需要进行排序。

我认为最容易实现自己的订购。我使用一个关系到一个“订购”实体,它只是一个索引属性和与有序实体的关系。然后,您所要做的就是对Ordering对象进行排序和获取,然后遍历各自的关系以按顺序查找目标对象。它快速,干净,灵活,可与NSFetchedResultsController一起使用。

+0

是的,我意识到'NSFetchedResultsController'期待一个无序集 - 我想知道是否有一种方法来获得排序描述符来使用'BWOrderedManagedObject'排序或是否有可能将一个数组传递给'NSFetchedResultsController '。 但是,我认为你是正确的,实施我自己的订单会更容易。谢谢! – 2010-07-15 03:14:20

+0

我还没有太多的调整BWOrderedManagedObject,但我不认为FRC可以使用属性本身是一个数组作为节属性。另外,您还需要处理整个对象ID/URI信息。 – TechZen 2010-07-15 12:33:13

相关问题