2012-03-15 145 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?

相关问题