2012-03-15 142 views
1

我有一個包含對象的NSArray。我的對象是這樣的:對包含自定義對象的NSArray進行排序

@interface Personne : NSObject{ 

    int _id; 
    NSString *name; 
} 

我有一個Web服務,它通過名稱返回給我的人。例如;當我在搜索欄中點擊並放上「a」時,服務器將所有名稱中包含「a」的人都返回給我,我將結果放入NSArray。現在我想對我的數組進行排序,並將名稱以「a」開頭的人放在我的數組開頭,其他人放在最後。我怎樣才能做到這一點?

編輯:比如我有服務器的這樣的迴應:

marakech 
arabie 
malakit 
arsenal 
astonvilla 

我想排序是這樣的:

arabie 
arsenal 
astonvilla 
malakit 
+1

此答案正是你正在尋找的:http://stackoverflow.com/questions/805547/how-to-sort-an-nsmutablearray-with-custom-objects-in-it希望它幫助! :) – 2012-03-15 13:29:34

回答

2

您可以使用此方法:

- (NSArray *)sortedArrayUsingComparator:(NSComparator)cmptr 

這需要一個比較塊,那麼你可以把你的排序標準在這樣的塊:

mySortedArray = [myArrat sortedArrayUsingComparator: ^(id a, id b) { 
    //criteria; 
    return [a compare:b]; 
+0

請參閱馬編輯,謝謝 – samir 2012-03-15 13:34:29

2

我想你會需要一個NSMutableArray,不NSArray。另外要排序使用sortUsingSelector:

即首先,你可以寫一個方法,你Personne- (NSComparisonResult)compare:(MyObj *)otherObj類,那麼你可以可以排序與sortUsingSelector:@selector(compare:)

檢查可變數組本 - How to sort an NSMutableArray with custom objects in it?

相關問題