4

カスタム クラスから作成されたオブジェクトの配列があります。各オブジェクトには NSDate プロパティがあります。日付のプロパティに基づいてこれらすべてのオブジェクトを並べ替える最も簡単で迅速な方法は何ですか? (最新のものから古いものの順に)。

4

2 に答える 2

19
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"thisIsTheNameOfYourDateProperty" ascending:NO];
NSArray *orderedArray = [arrayOfCustomObjects sortedArrayUsingDescriptors:[NSArray arrayWithObject:sortDescriptor]];
于 2012-08-05T15:24:36.713 に答える
8

これを試して:

NSArray* newArray = [array sortedArrayUsingComparator: ^NSComparisonResult(MyClass *c1, MyClass *c2)
{
    NSDate *d1 = c1.date;
    NSDate *d2 = c2.date;

    return [d1 compare:d2];
}];

上記と同様に、可変配列を適切にソートする方法もあります。

編集:より少ないコードを使用してこれを行う他の方法があることは知っていますが、私は本当にあらゆる種類のものにブロック列挙子を好むようになったので、練習を続けることが便利だと思います。これらを微調整して、より非標準的な並べ替え(intとオブジェクト)を使用し、NSLog()を使用して実際に何が起こっているかをログに記録することもできます...)。

于 2012-08-05T15:27:23.857 に答える