gpt4 book ai didi

ios - 使用 UILocalizedIndexedCollat​​ion 和 localizedStandardCompare 对字符串进行排序 : method

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:24:56 26 4
gpt4 key购买 nike

使用这个(内存排序)时排序顺序有区别吗

[[UILocalizedIndexedCollation currentCollation] sortedArrayFromArray:namesArray collationStringSelector:@selector(sortName)]

和这个(用于 CoreData 排序)

fetchRequest.sortDescriptors =
[NSArray arrayWithObject:[NSSortDescriptor
sortDescriptorWithKey:@"name" ascending:YES
selector:@selector(localizedStandardCompare:)]];

我想用 CoreData 存储一个巨大的数据集,然后在 TableView 中显示它。在这种情况下,如果任何记录发生变化,我将需要使用第一种方法对整个数组进行求值,这需要一段时间,因此第二种方法更为可取。

我知道英语的排序顺序应该相同,但我真的不知道使用带变音符号的字母和使用非拉丁字母的语言。

非常感谢您的帮助。

最佳答案

一个区别是使用 UILocalizedIndexedCollat​​ion,当您的区域设置为 en_US 时,非拉丁字符似乎会按语音排序。例如,在英文 iPhone 上,su(发音为“su”)会放在“S”下面,连同其他真正与“S”相关的词。使用 localizedStandardCompare:,相同的 su 字符会出现在 Z 之后。

带变音符号的拉丁字符在两种类型中的处理方式相同(例如,“Aaa”<“Åab”<“Aac”与 UILocalizedIndexedCollat​​ionlocalizedStandardCompare: ).

可能还有很多不同之处,尤其是当您开始将设备设置为其他语言环境时。不幸的是,我还没有弄清楚如何让 CoreData 以与 UILocalizedIndexedCollat​​ion 相同的方式进行排序,所以我使用内存数组或完全避免使用 UILocalizedIndexedCollat​​ion,具体取决于要求。如果有人知道更好的方法,那就太好了。

关于ios - 使用 UILocalizedIndexedCollat​​ion 和 localizedStandardCompare 对字符串进行排序 : method,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11523478/

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