2013-10-29 177 views
1

我是新來的objective-c,ios。 我想按照alfabetic順序排序一個名爲filteredList的NSMutableArray,它包含NSString類型的對象。排序包含NSString對象的NSMutableArray

所以如果我的可變數組包含:瑪麗,比爾,約翰]我想有[比爾,瑪麗,約翰]

我做了以下內容:

[filteredList sortUsingSelector:@selector(localizedCaseInsensitiveCompare:)]; 

但我不看到任何變化。我沒有閱讀和嘗試其他解決方案比較:而不是localizedCaseInsensitiveCompare,但仍然沒有。

+0

https://developer.apple.com/library/ mac/documentation/Cocoa/Conceptual/Collections/Articles/Arrays.html#// apple_ref/doc/uid/20000132-SW5 or https://developer.apple.com/library/ios/documentation/cocoa/reference/foundation/Classes/NSSortDescriptor_Class/Reference/Reference.html –

+0

您的代碼將可變數組*正確地排序爲[Bill,John,Mary ]。請顯示一個完整的獨立(非)工作示例。 –

回答

2

更新

NSArray *sortedArray =[unSortedArray sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];//unSortedArray is NSMutableArray 
unSortedArray = [[NSMutableArray alloc]initWithArray:sortedArray]; 
+0

我擁有的數組是一個NSMutableArray。請問您可以根據要求更改您的代碼嗎? –

+0

unSortedArray是NSMutableArray,您只需將排序的值存儲在NSArray(sortedArray)中。 – TamilKing

+0

@justME:我更新我的代碼 – TamilKing

0

我會做這樣的事情:

NSArray *sortedArray = [filteredList sortedArrayUsingComparator:^(NSString *str1, NSString *str2) { 
    return (NSComparisonResult)[str1 compare:str2]; 
}]; 
filteredList = [sortedArray mutableCopy]; 
+0

我已經檢查過如果sortedArray的元素處於corect位置。他們是,但過濾列表仍然沒有在我的桌面視圖彈出。 –

+0

不好怎麼樣?不正確的順序? – Zalykr

+0

是的,它們沒有以正確的順序顯示在我的tableView –

0

請參考下面的代碼: -

filteredList = (NSMutableArray*)[filteredList sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)]; 
相關問題