代码之家  ›  专栏  ›  技术社区  ›  flohei

分门别类

  •  0
  • flohei  · 技术社区  · 15 年前

    我想对我拥有的数组进行排序,以便将元音变音符视为字符的普通版本(·a等)。我认为局部不敏感比较:应该做到这一点。但没有。有人吗?

    最好的

    1 回复  |  直到 15 年前
        1
  •  3
  •   Yuji    15 年前

    localizedCaseInsensitiveCompare: 使用用户选择的当前语言中的标准规则进行比较,忽略大小写。在你的情况下,你想忽略变音符号,而不是情况。这意味着你需要做些别的事情。

    你需要使用 compare:options: NSDiacriticInsensitiveSearch 作为一种选择。看见 here .

    要使用它对数组进行排序,需要使用 sortedArrayUsingComparator: NSString 把选择器传给 sortedArrayUsingSelector: . 不要忘记给category方法的名称加前缀,这样它就不会与框架中的私有方法重叠。所以,做点像

    @interface NSString (myaddition)
    -(NSComparisonResult)mySecretDiacriticsInsensitveCompare:(NSString*)string;
    @end
    
    推荐文章