私は次の可変配列を持っています:
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*'です」。どうすれば修正できますか?