У меня есть следующий изменяемый массив:
NSMutableArray *persons = [[NSMutableArray alloc]initWithObjects:person1, person2, person3, nil];
где каждый человек является объектом, который содержит (NSInteger) personAge и (NSString *) personName свойства. Теперь я хочу отсортировать этот массив с помощью personAge. Поэтому я попробовал следующее:
[persons sortUsingComparator:
^NSComparisonResult(id obj1, id obj2)
{
Person *p1 = (Person*)obj1;
Person *p2 = (Person*)obj2;
return [p1.personAge compare: p2.personAge];
}];
NSLog(@"%ld", [persons componentsJoinedByString:@" "]);
Но я получаю сообщение ошибки "NSInteger" (aka "long" ) "Плохой приемник типа" в обратной линии. Также у меня есть предупреждение в строке NSLog: "Формат задает тип" long ", но аргумент имеет тип" NSString * ". Как это исправить?