放置两个不同对象的列表并按日期排序,目标C.

时间:2013-02-13 16:39:38

标签: iphone ios objective-c

列表1包含对象As列表,列表2包含对象B列表。

对象A包含

date
quantity
message

对象B包含

date
email
first name
last name

对象As和Bs都有一个共同的属性日期。无论如何,它们将它们合并到一个列表中并按日期排序。

2 个答案:

答案 0 :(得分:2)

你应该将它们合并到一个数组中(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];
    }];

我没有测试过代码,但它会是这样的。

答案 1 :(得分: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]; }];