1

我有一个我认为很有趣的问题。我有两个需要合并和排序的数组。每个数组都是字典对象的数组,但每个字典对象的结构不同。因此,一个数组包含元素,每个元素都包含一个列表,例如 12 个键/值。另一个数组的元素包含一个列表,比如 15 个键/值。一些键/值可能相同,但不一定顺序相同,格式也不一定相同(例如,每个数组中日期字段的格式不同)。

我需要做的(最终)是将它们组合起来,并按一个通用键 - 日期字段进行排序。

我不认为数组可以在各个元素之间包含具有不同结构的元素,可以吗?我从未使用过可以做到这一点的语言,尽管我问是因为如果objective-c 可以,我不会感到惊讶。

无论如何,我一直在阅读 Apple 的文档,并且已经提供了很多很棒的排序和合并算法。但是我可以使用一些帮助来决定使用什么方法。

事实是,我只需要大约 5 个字段,所以我觉得我想用我想要的结构创建第三个字典数组,然后将所有项目转移到其中,然后进行排序。但是我从哪里开始呢?

如果有人对此有任何经验,我将不胜感激。

4

1 回答 1

1

Objective-C中,您可以拥有一个NSArray,其中包含任何类型的对象。仅由NSArraysNSSetsNSDictionaries组成的结构称为Collection

因此,您可以将它们合并为一个并轻松按日期排序

因此,合并后,您可以像这样对数组进行排序

NSSortDescriptor *sortByDateDescriptor = [[NSSortDescriptor alloc] initWithKey:@"date"
                                              ascending:YES];
NSArray *sortDescriptors = [NSArray arrayWithObject:sortByDateDescriptor];
NSArray *sortedArray = [mergedArray sortedArrayUsingDescriptors:sortDescriptors];   

要合并到NSMutableArray 的,只需使用[firstrray addObjectsFromArray: secondArray];

于 2012-04-15T20:58:50.420 回答