我有一个NSFetchRequest
从核心数据获取对象并使用一个微不足道的NSSortDescriptor
对它们进行排序。我用一对夫妇取决于用户选择什么样不同的人,但他们是这样的:NSSortDescriptor - 订单是否已更改?
NSMutableArray *sortDescriptors = [NSMutableArray array];
NSSortDescriptor *sortDescriptor1 = [NSSortDescriptor sortDescriptorWithKey:@"ownerName" ascending:YES selector:@selector(caseInsensitiveCompare:)];
NSSortDescriptor *sortDescriptor2 = [NSSortDescriptor sortDescriptorWithKey:@"petName" ascending:YES selector:@selector(caseInsensitiveCompare:)];
[sortDescriptors addObject:sortDescriptor1];
[sortDescriptors addObject:sortDescriptor2];
[fetchRequest setSortDescriptors:sortDescriptors];
一切正常上的iOS5和5.1一如预期,但是当我测试在iPad上运行iOS4的完全相同的代码。 2.1(或4.3模拟器),所有第一个排序描述符的顺序相反。在这个例子中,所有者姓名是从Z到A的顺序,但宠物正确订购A到Z!
早期iOS版本中是否存在导致ascending
布尔值错误的错误?另外,还有什么我可能做错了吗?
编辑:第一个键(ownerName)用作NSFetchedResultsController
部分。不确定这是否相关。
感谢克雷格
如果您为'ascending'参数传递'NO',您会得到正确的顺序吗? – Mundi 2012-01-27 22:57:36
是的。我已经将第一个SD上的'升序'字符更改为NO,然后反映了iOS5的结果。第二个SD仍然设置为YES,并且该部分中的项目以相同的方式排序。奇怪的! – 2012-01-28 00:20:44