2013-02-19 177 views
1

我想按照objective-c中的字母順序對數組進行排序。我已經用這種方式實現了。在objective-c中按字母順序對數組進行排序

//Sorting of the Array 
NSArray *sortedArray = [arrName sortedArrayUsingComparator:^(Cars *firstObject, Cars *secondObject) { 
    return [firstObject.str_name compare:secondObject.str_name]; 
}]; 
arrName =[NSMutableArray arrayWithArray:sortedArray]; 

的問題是所有的數字出現,然後captial字母的單詞,然後小寫字母項目...

我希望它出現alphabetically->意思是說,大寫字母和小寫字母可能混合。

回答

14

compare:替換爲caseInsensitiveCompare:

由於arrName是可變的,請改用'sortUsingComparator'方法。它將排序可變數組而不創建新數組。

[arrName sortUsingComparator:^(Cars *firstObject, Cars *secondObject) { 
    return [firstObject.str_name caseInsensitiveCompare:secondObject.str_name]; 
}]; 
+0

真棒..謝謝...... – lakesh 2013-02-19 03:48:06

+0

然後我是正確的說法是sortedArray有可能成爲類NSMutableArray裏的? – lakesh 2013-02-19 03:58:00

+0

不,你不需要'sortedArray'。 – rmaddy 2013-02-19 03:58:52

-1

試試這個,

NSArray *array=[[NSArray alloc]initWithObjects:@"Object1",@"object1", nil];  
array =[array sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)]; 
NSLog(@"%@",array); 
+0

這不起作用。它不是一個字符串數組,它是一個對象數組,它是對象屬性的排序。 – rmaddy 2013-02-19 03:52:15