简体   繁体   English

放置两个不同对象的列表,并按日期分类,目标C

[英]putting two lists of different objects and sort them by date, objective C

List 1 contains a list of object As and list 2 contains a list of object Bs. 列表1包含对象As的列表,列表2包含对象Bs的列表。

Object A contains 对象A包含

date
quantity
message

Object B contains 对象B包含

date
email
first name
last name

Both object As and Bs has a property date in common. 对象As和Bs具有相同的属性日期。 Are there anyway to merge them into one list and sorted by date. 无论如何,是否有将它们合并到一个列表中并按日期排序的方法。

You should merge them into one Array (NSArray's arrayByAddingObjectsFromArray:, right?) and then you could use NSArray's sortedArrayUsingComparator: 您应该将它们合并为一个数组(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];
    }];

I haven't tested the code, but it's going to be something like that. 我还没有测试代码,但这将是类似的事情。

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]; }];

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM