Iphone 自定义类对象的排序数组

Iphone 自定义类对象的排序数组,iphone,ios4,Iphone,Ios4,我面临的问题是分类。该场景被解释为:我有一个类(假设为person),它有4个属性(firstName、lastName、Address、salary),我正在创建它的对象,创建所有属性的集合,并将该对象放入NSMutableArray中,依此类推。因此,在数组的每个索引中,我都有一个对象(即4个属性的集合)。现在我想根据薪水对数组进行排序。如果有人能帮我解决这个问题,我将不胜感激。请参阅NSArray的文档。它有几种排序方法。搜索单词“sort”,你会找到它们。(你需要基于块或基于函数的API

我面临的问题是分类。该场景被解释为:我有一个类(假设为person),它有4个属性(firstName、lastName、Address、salary),我正在创建它的对象,创建所有属性的集合,并将该对象放入NSMutableArray中,依此类推。因此,在数组的每个索引中,我都有一个对象(即4个属性的集合)。现在我想根据薪水对数组进行排序。如果有人能帮我解决这个问题,我将不胜感激。

请参阅NSArray的文档。它有几种排序方法。搜索单词“sort”,你会找到它们。(你需要基于块或基于函数的API)。

使用这个

NSSortDescriptor *sorter = [[[NSSortDescriptor alloc] initWithKey:@"salary" ascending:YES] autorelease];
NSArray *sortDescriptors = [NSArray arrayWithObject: sorter];
    [yorArrary sortUsingDescriptors:sortDescriptors];

或者为对象实现比较方法:

- (NSComparisonResult)compare:(Person *)otherObject {
return [self.birthDate compare:otherObject.birthDate];
 }

 NSArray *sortedArray;
 sortedArray = [drinkDetails sortedArrayUsingSelector:@selector(compare:)];
或者通常更好:(NSSortDescriptor的默认排序选择器是compare:)


标题让人困惑,我以为这是关于类数组的。@Ishu,Maulik:我已经实现了这样的功能,但是我的程序给了我一个异常“Thread1:program接收到信号:SIGABRT”,并且崩溃了NSSortDescriptor*sorter=[[NSSortDescriptor alloc]initWithKey:@“salary”升序:是]自动释放];NSArray*sortDescriptors=[NSArray阵列WithObject:sorter];[appDelegate.ContactArray排序描述符:排序描述符];对这种行为有什么想法吗?Ishu实际上我不知道错误是什么,也不知道错误在哪里,就在到达这一行时[appDelegate.ContactArray sortUsingDescriptors:sortDescriptors];程序崩溃,刚刚收到此日志消息“在抛出“NSException”实例后终止调用”。这不显示完整消息,请给出完整的异常。确实没有其他内容,该消息与我已经告诉你的消息相同:(在抛出“NSException”当前语言的实例后调用terminate:自动;当前目标C当您需要进行调试时,请仔细检查是否正确设置appDelegate对象。访问数组将为您提供数组对象。还可以使用NSZombie。
NSSortDescriptor *sortDescriptor;
sortDescriptor = [[[NSSortDescriptor alloc] initWithKey:@"birthDate"
                                          ascending:YES] autorelease];
NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor];
NSArray *sortedArray;
sortedArray = [drinkDetails sortedArrayUsingDescriptors:sortDescriptors];