我有以下格式的字符串数组5_5_a,10_10_a,0_0_a 1_1_a等。我想按升序/降序对它们进行排序。当我使用sortedArrayUsingSelector时:@ selector(比较:)我得到0_0_a,10_10_a,1_1_a,5_5_a。我试图将每个字符串解析成5 5个块并转换为int然后将第一个元素放入带有addObject:myInteger的数组中,但是在编译时我收到了警告。如果我错过了什么,请告诉我。谢谢Mark
答案 0 :(得分:0)
这是因为'_'的ascii代码大于'0'。
我不知道你是否可以将'_'改为' - '例如?它将解决您的问题,您将能够使用sortedArrayUsingSelector
。
如果没有,你可以这样做:
[str stringByReplacingOccurancesOfString:@"_" withString:@"-"]
然后对数组进行排序,最后将“ - ”替换为“_”。
(这只是一个解决方案......不是最好的一个^^)