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

时间:2010-08-11 05:30:28

标签: objective-c sorting core-data nssortdescriptor

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

我尝试使用:

[NSSortDescriptor sortDescriptorWithKey:@"birthdayDate" 
                              ascending:YES 
                               selector:@selector(compareNextBirthday:)];

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

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

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

1 个答案:

答案 0 :(得分:7)

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

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

相关问题