#iphone #sorting #ios4 #nsmutablearray
#iPhone #сортировка #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:
Когда вы используете sortedArrayUsingSelector:
, указанный вами селектор будет отправлен объектам в массиве. Итак, ваш -sort:
метод должен быть объявлен и определен в классе объектов, которые вы сортируете, а не в другом классе.