使用类别和核心数据进行自定义排序 - 框架是否支持?

Ami*_*aor 4 sorting core-data objective-c nssortdescriptor

我正在为iPhone iOS 4.0开发,我有一个使用Core Data存储的生日对象列表(日期+名称).我想使用NSFetchedResultsController来检索按每个生日对象的下一个生日日期排序的列表.为此,我需要为排序描述符定义自己的逻辑.

我试过用:

[NSSortDescriptor sortDescriptorWithKey:@"birthdayDate" 
                              ascending:YES 
                               selector:@selector(compareNextBirthday:)];
Run Code Online (Sandbox Code Playgroud)

compareNextBirthday:我在NSDate类上创建的类别中定义的位置.

但是当我尝试获取数据时,我收到以下错误:"不支持的NSSortDescriptor选择器:compareNextBirthday:"

我花了好几个小时试图解决这个问题而没有运气...... Core Data是否支持这种自定义排序?我真的需要进行内存排序吗?

Mar*_*rra 7

NSFetchedResultsController在持久性存储级别执行内部排序,因此如果您使用SQLite作为后端,它将失败.

对于类似这样的事情,我会对数据进行去规范化并存储月份和日期以及实际的出生日期,以便您可以对它们进行排序.