如何以不区分大小写的方式应用NSSortDescriptors数组?

时间:2015-03-28 15:04:13

标签: ios objective-c macos cocoa

因为NSHTTPCookieStorage有一些可怕的限制我正在实现自己的,并且重新实现的方法之一是- (NSArray *)sortedCookiesUsingDescriptors:(NSArray *)sortOrder。它只是得到一个NSSortDescriptor的数组并应用它但令我惊讶的是,我的测试结果似乎表明这些排序描述符是以不区分大小写的方式应用的。

除了将选择器设置为NSSortDescriptor之外,我找不到以不区分大小写的方式应用:@selector(caseInsensitiveCompare:)的方法,但由于属性选择器是只读的,所以我管理的最好是:

NSMutableArray *insensitiveSortOrder = [NSMutableArray array];
for (NSSortDescriptor* sorter in sortOrder) {
    [insensitiveSortOrder addObject: [NSSortDescriptor sortDescriptorWithKey: sorter.key ascending:sorter.ascending selector:@selector(caseInsensitiveCompare:)]];
}

该实施是否正确?有没有更好的方法来实现这一目标?

让我担心的一件事是我完全忽略了NSSortDescriptor的comparator属性。

0 个答案:

没有答案