问题描述
我正在开发iPhone iOS 4.0,我有一个使用Core Data存储的生日对象(日期+名称)的列表。我想使用NSFetchedResultsController检索此列表,按照每个生日对象的下一个出生日期排序。为此,我需要为排序描述符定义我自己的逻辑。
我尝试使用:
cn> NSFetchedResultsController code>在持久存储级别执行,所以如果你使用SQLite作为后端它将失败。
对于这样的东西,除了实际的出生日期之外,我还将对数据进行反标准化并存储月份和日期,以便对它们进行排序。 p>
I'm developing for iPhone iOS 4.0 and I have a list of birthday objects (date + name) stored using Core Data. I want to use the NSFetchedResultsController to retrieve this list sorted by the next birthdate date of each birthday object. For that I need to define my own logic for the sort descriptor.
I tried using:
[NSSortDescriptor sortDescriptorWithKey:@"birthdayDate" ascending:YES selector:@selector(compareNextBirthday:)];Where compareNextBirthday: is defined in a category I created on a NSDate class.
But when I try to fetch the data I get the following error: "unsupported NSSortDescriptor selector: compareNextBirthday:"
I spent hours trying to figure this out without luck... does Core Data support this kind of custom sorting at all? Do I really need to do an in-memory sort?
解决方案Sorting inside of the NSFetchedResultsController is performed at the persistent store level so if you are using SQLite as the backend it will fail.
For something like this I would de-normalize the data and store the month and day of month in addition to the actual birthdate so that you can sort on them.
这篇关于使用类别和核心数据的自定义排序 - 是否支持框架?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!