2010-09-25 67 views
0

比方说,我有一个自定义对象的数组。自定义类看起来像这样如何通过Cocoa Touch中的某个属性来排列对象的数组?

Person 
------- 
name 
number 

现在让我们说,我要重新排列这些对象的数组,这样的对象由数量排序。如何才能做到这一点?

+1

Xcode是一个IDE,它不是一种编程语言/库。 – kennytm 2010-09-25 10:23:40

+0

可能的重复[如何排序与自定义对象的NSMutableArray?](http://stackoverflow.com/questions/805547/how-to-sort-an-nsmutablearray-with-custom-objects-in-it) – 2011-02-14 12:14:09

回答

2

1)你必须实现以下在Person类方法

- (NSNumber *)numberForSorting { 
    return self.number; 
} 

- (NSComparisonResult)compare:(Person *)person { 
    return [[self numberForSorting] compare:[person numberForSorting]]; 
} 


2)当一个人数组必须是那种你刚才所说的)的情况下,

NSMutableArray

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

b)在NSArray

NSArray *sortedPeople = [peopleArray [email protected](compare:)]; 
+1

这几乎是正确的答案。在numberForSorting方法中,您将返回self.number的NSNumber表示形式,而不是self.name。 – 2010-09-26 08:08:43

+0

你很对,编辑 – knuku 2010-09-26 08:49:49