0

リスト1にはオブジェクトAsのリストが含まれ、リスト2にはオブジェクトBのリストが含まれます。

オブジェクトAには

date
quantity
message

オブジェクトBには

date
email
first name
last name

オブジェクトAsとBsの両方に、共通のプロパティ日付があります。とにかくそれらを1つのリストにマージし、日付でソートする方法はありますか。

4

2 に答える 2

2

それらを 1 つの配列にマージする必要があります (NSArray の arrayByAddingObjectsFromArray: ですよね?)。その後、NSArray の sortedArrayUsingComparator: を使用できます。

    NSArray *mergedArray = [array1 arrayByAddingObjectsFromArray:array2];

    NSArray *orderedArray = [mergedArray sortedArrayUsingComparator: ^(id obj1, id obj2) {
        NSDate *date1 = [obj1 date];
        NSDate *date2 = [obj2 date];
        return [date1 compare:date2];
    }];

私はコードをテストしていませんが、そのようなものになるでしょう。

于 2013-02-13T16:55:56.113 に答える
1
NSArray *listA = [NSArray arrayWithObjects:objA0, objA1, objA2, nil];
NSArray *listB = [NSArray arrayWithObjects:objB0, objB1, objB2, nil];

NSMutableArray *allObjects = [NSMutableArray arrayWithArray:listA];
[allObjects addObjectsFromArray:listB];

[allObjects sortUsingComparator:(NSComparator)^(id obj1, id obj2){
    NSDate *date1 = obj1.date;
    NSDate *date2 = obj2.date;
    return [date1 compare:date2]; }];
于 2013-02-13T16:57:00.533 に答える