2011-07-08 45 views
2

可能重複:
How to sort array having numbers as string in iPhone?
How Do I sort an NSMutable Array with NSNumbers in it?如何對目標C中的數組進行排序?

我有一個NSMutableArray的與數字的隨機順序。我必須按照升序和降序對它們進行排序?是否有任何內置的函數,如果沒有可以完成的。陣列如下:

arr = [「12」,「85」,「65」,「73」,「21」,「87」,「1」,「34」,「32」];

+0

什麼是陣列的*類型? 'NSArray'?或者它只是一個'C'數組? –

+0

@Paul R:它是NSMutableArray – Developer

+2

請編輯您的問題以包含此說明 –

回答

4

排序的NSMutableArray(基於關鍵),其中包含對象

首先,你需要創建一個NSSortDescriptor並告訴它哪個鍵上的數組進行排序。

NSSortDescriptor *lastNameSorter = [[NSSortDescriptor alloc] initWithKey:@"lastName" ascending:YES]; 
[personList sortUsingDescriptors:[NSArray arrayWithObject:lastNameSorter]]; 

希望this Full tutorial幫助你。爲你的情況

1

示例代碼:

NSArray *sortedArray; 

sortedArray = [anArray sortedArrayUsingFunction:intSort context:NULL]; 

NSInteger intSort(id num1, id num2, void *context) 
{ 
    int v1 = [num1 intValue]; 
    int v2 = [num2 intValue]; 
    if (v1 < v2) 
     return NSOrderedAscending; 
    else if (v1 > v2) 
     return NSOrderedDescending; 
    else 
     return NSOrderedSame; 
} 

可以開發來排序您在intsort方法數組,並將其傳遞作爲參數傳遞給上述方法的邏輯。

有許多預定義的方法,如:

  • sortUsingDescriptors:
  • sortUsingComparator:
  • sortWithOptions:usingComparator:
  • sortUsingFunction:背景:
  • sortUsingSelector:

後續developer.ap ple.com的API

好運TNX

3

使用類的NSMutableArray的sortUsingSelector實例方法。

使用這一行(但是你需要使用NSNumbers而不是字符串中的數字的情況下)

[myArray sortUsingSelector:@selector(compare:)]; 

這升序排列數組。爲了降序,在上面的行之後添加這一行。

myArray=[myArray reverseObjectEnumerator] allObjects];