2012-01-27 81 views
-2

我的階級結構的屬性的屬性看起來是這樣的:NSSortDescriptor上的對象

TargetDetail : NSObject 
@property Target *target 


Target : NSObject 
@property NSUInteger location 

我TargetDetail對象的數組。我想按照地點對它們進行排序。我試過這個:

NSSortDescriptor *byNum = [[NSSortDescriptor alloc] [email protected]"target.location" ascending:YES]; 
NSArray *sortDescriptorArray = [[NSArray alloc] initWithObjects:byNum, nil]; 

[targetArray sortedArrayUsingDescriptors:sortDescriptorArray]; 

我的NSArray沒有改變。我如何使用這種方法進行排序?謝謝。

回答

3

sortedArrayUsingDescriptors不會對指定的數組進行排序,它會創建一個新數組並對其進行排序,然後返回該數組。 所以,你的代碼需要:

NSArray *mySortedArray = [targetArray sortedArrayUsingDescriptors:sortDescriptorArray]; 
0

你會加載,如果你使用的NSMutableArray更加靈活。在這種情況下,您可以使用:

[targetArray sortUsingDescriptors:sortDescriptorArray]; 

這將對您的陣列進行恰當的排序。它自iOS 2.0起可用