动态更改Fetched结果控制器的排序描述符

时间:2010-06-19 14:24:51

标签: iphone objective-c core-data nsfetchedresultscontroller

有没有办法在iOS上为获取的结果控制器动态设置排序描述符?

例如,我需要根据导航标题栏中的分段控件的设置将返回的核心数据结果排序。用户可以单击分段控件以按价格或优先级排序。

然后我需要获取的结果控制器返回并显示基于该分段控制值分类为部分的核心数据信息。

我知道如何最初设置排序描述符,但我不确定如何更改它/动态更新它。由于- (NSFetchedResultsController *)fetchedResultsController函数是延迟加载的,它不会总是只返回第一次创建的frc(因此返回初始排序描述符设置)?

我会做一些事情,比如将分段控制值存储在sharedPreferences中,然后当它被更改时,将我的fetchedResultsController设置为nil,以便生成一个新的?然后在fetchedResultsController函数中我可以根据sharedPreferences设置创建我的sortDescriptor吗?

1 个答案:

答案 0 :(得分:3)

你可以控制它。例如,您可以在更新分段控件时释放控制器并在表上调用reload。这将导致使用新排序重建控制器。

还有其他解决方案,但它们取决于您的应用设计。