6

クラス A オブジェクトの配列があります。これを detailsArray とします。

クラス A にはプロパティとして日付、名前があります。

日付に基づいてこの配列をソートする良い方法を提案できる人はいますか?

NSSortDescriptorこの配列をソートするにはどうすればよいですか? NSSortDescriptor私は...を使用して辞書の配列をソートすることを知っています

どんな助けでも大歓迎です.....

4

4 に答える 4

17
NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"date" ascending:NO];
NSArray *sortedArray = [detailsArray sortedArrayUsingDescriptors:@[sortDescriptor]];
于 2013-03-21T06:34:40.467 に答える
5
NSSortDescriptor *descriptor = [[NSSortDescriptor alloc] initWithKey:@"self" ascending:NO];
NSArray *descriptors = [NSArray arrayWithObject: descriptor];

NSArray *reverseOrder = [dateArray sortedArrayUsingDescriptors:descriptors];
于 2013-03-21T06:33:32.003 に答える
3
NSSortDescriptor *sortDescriptor;
sortDescriptor = [[[NSSortDescriptor alloc] initWithKey:@"date"
                                              ascending:YES] autorelease];
NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor];
NSArray *sortedArray;
sortedArray = [yourArray sortedArrayUsingDescriptors:sortDescriptors];

または、ブロックも使用できます

NSArray *sortedArray;
sortedArray = [yourArray sortedArrayUsingComparator:^NSComparisonResult(A *a, A *b) {
    NSDate *first = a.date;
    NSDate *second = b.date;
    return [first compare:second];
}];
于 2013-03-21T06:31:30.877 に答える
1

次のように、クラス名でキーを転送する必要があります

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"ClassA.date" ascending:YES];

質問する前にクエリをグーグルで検索し、グーグルクローラーの結果を参照してください

于 2013-03-21T06:37:32.870 に答える