gpt4 book ai didi

iphone - NSSortDescriptor - 顺序改变了吗?

转载 作者:行者123 更新时间:2023-12-01 16:58:52 25 4
gpt4 key购买 nike

我有一个 NSFetchRequest从核心数据中获取对象并使用简单的 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 上一切正常,但是当我在运行 iOS4.2.1(或 4.3 模拟器)的 iPad 上测试完全相同的代码时,所有第一个排序描述符的顺序都颠倒了。在这个例子中,主人的名字按 Z 到 A 的顺序排列,但宠物的顺序是正确的 A 到 Z!

早期 iOS 版本中是否存在导致 ascending 的错误? bool 值是错误的方式?或者,还有其他我可能做错的事情吗?

编辑:第一个键 (ownerName) 用作 NSFetchedResultsController部分。不确定这是否相关。

谢谢克雷格

最佳答案

只是猜测。

没有指定 caseInsensitiveCompare: 的情况下我得到了很好的结果.

另外,严格来说NSFetchRequest预计 NSArray作为 sortDescriptors论据,而不是 NSMutableArray .在 Apple 的所有示例代码中,它通常类似于

[fetchRequest setSortDescriptors:
[NSArray arrayWithObjects:sortDescriptor1, sortDescriptor2, nil]];

我遇到过这样的错误(使用可变而不是不可变),但它通常也可以正常工作。也许改变这一点值得一试。

关于iphone - NSSortDescriptor - 顺序改变了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9040861/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com