NSMutableArray使用选择器排序自定义对象

时间:2011-04-24 13:37:20

标签: iphone sorting ios4 nsmutablearray

@interface PlayerVO : NSObject {
NSString *name;
int duration;
}

@property (nonatomic, retain) NSString *name;
@property (readwrite) int duration;

@end

要根据持续时间的值(升序)进行排序的自定义对象

在另一个班级中,我创建了一个函数,

- (NSComparisonResult)sort:(PlayerVO *)otherObject {
if ([self duration] < [otherObject duration]) {
    return NSOrderedAscending;
} else if([self duration] > [otherObject duration]){
    return NSOrderedDescending;
} else {
    return NSOrderedSame;
}
}

调用功能

[data sortedArrayUsingSelector:@selector(sort:)];

我在这里做错了吗?

1 个答案:

答案 0 :(得分:3)

使用sortedArrayUsingSelector:时,您提供的选择器将被发送到阵列中的对象。因此,需要在要排序的对象的类上声明和定义-sort:方法,而不是在另一个类上。