我正在为iPhone iOS 4.0开发,我有一个使用Core Data存储的生日对象列表(日期+名称)。我想使用NSFetchedResultsController检索此列表,该列表按每个生日对象的 next 生日日期排序。为此,我需要为排序描述符定义自己的逻辑。
我尝试使用:
[NSSortDescriptor sortDescriptorWithKey:@"birthdayDate"
ascending:YES
selector:@selector(compareNextBirthday:)];
在我在NSDate类上创建的类别中定义compareNextBirthday:
。
但是当我尝试获取数据时,我收到以下错误:“不支持的NSSortDescriptor选择器:compareNextBirthday:”
我花了好几个小时试图解决这个问题而没有运气...... Core Data是否支持这种自定义排序?我真的需要进行内存排序吗?
答案 0 :(得分:7)
在NSFetchedResultsController
内部进行排序是在持久性存储级别执行的,因此如果您使用SQLite作为后端,它将失败。
对于类似这样的事情,我会对数据进行去规范化,并存储月份和月份以及实际的出生日期,以便您可以对它们进行排序。