2012年7月31日 星期二

NSMutableArray Sort


今天來分享一下NSMutableArray的排序方式

NSString *sortOrder = @"AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz_0123456789";
            
            [array sortUsingComparator:^NSComparisonResult(id obj1, id obj2)
             {
                 char char1 = [(NSString *)obj1 characterAtIndex: 0];
                 char char2 = [(NSString *)obj2 characterAtIndex: 0];
                 
                 int index1;
                 for (index1 = 0; index1 < sortOrder.length; index1++)
                     if ([sortOrder characterAtIndex: index1] == char1)
                         break;
                 
                 int index2;
                 for (index2 = 0; index2 < sortOrder.length; index2++)
                     if ([sortOrder characterAtIndex: index2] == char2)
                         break;
                 
                 if (index1 < index2)
                     return NSOrderedAscending;
                 else if (index1 > index2)
                     return NSOrderedDescending;
                 else
                     return [(NSString *)obj1 compare: obj2 options: NSCaseInsensitiveSearch];
             }];

這樣Array就會照英文跟數字的方式來排序了

1 則留言:

  1. Dear 大大

    你好 小弟剛學object C
    想請問這邊^NSComparisonResult的^符號 用意是什麼

    如有打擾非常抱歉

    回覆刪除