如何对包含具有字符和小数的对象的数组进行排序?

时间:2015-08-10 13:50:25

标签: ios objective-c arrays sorting

要对我的数组进行排序,我使用此方法:

self.myArray = [self.myArray sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {
if ([obj1 isKindOfClass:[ObjectVO class]] && [obj2 isKindOfClass:[ObjectVO class]]) {
        ObjectVO *myObject1 = (ObjectVO *)obj1;
        ObjectVO *myObject2 = (ObjectVO *)obj2;
        switch (sortType) {
        ....
           case 2:
           return [myObject1.name compare: myObject2.name];
        .....
        }
        return NSOrderedDescending;
}];

问题是当我有2个对象时,如: A100 A50 ,A100是列表中的第一个对象,A50是第二个对象。 我的对象是叮咬。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

试试这个:

self.myArray = [self.myArray sortedArrayUsingComparator:^NSComparisonResult(NSString *obj1, NSString *obj2) {
    return [obj1 compare:obj2 options:NSNumericSearch];
}];

NSNumericSearch

  

字符串中的数字使用数值进行比较,即   Name2.txt< Name7.txt< Name25.txt。

     

数字比较仅适用于字符串中的数字,而不适用   其他可能具有真实数字意义的字符,例如a   负号或小数点。

     

此选项仅适用于比较方法,而不是查找。