我有以下可变数组:
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'(又名'long')”错误消息。此外,我在 NSLog 行中有一条警告:“格式指定类型为 'long',但参数的类型为 'NSString *'”。我如何解决它?