Objective c 在数组中合并和排序字典的内容

Objective c 在数组中合并和排序字典的内容,objective-c,sorting,merge,Objective C,Sorting,Merge,我有一系列带有类别的选项字典。我希望选项在该类别下。到目前为止,我的类别正在重复添加我的选项的次数 鉴于此: ( { multiOptnCatId = 4; multiOptnItem = 1344; }, { multiOptnCatId = 7; multiOptnItem = 2253; }, { multiOptnCatId = 4;

我有一系列带有类别的选项字典。我希望选项在该类别下。到目前为止,我的类别正在重复添加我的选项的次数

鉴于此:

(
        {
        multiOptnCatId = 4;
        multiOptnItem = 1344;
    },
        {
        multiOptnCatId = 7;
        multiOptnItem = 2253;
    },
        {
        multiOptnCatId = 4;
        multiOptnItem = 1343;
    },
        {
        multiOptnCatId = 4;
        multiOptnItem = 1346;
    },
        {
        multiOptnCatId = 4;
        multiOptnItem = 1342;
    },
        {
        multiOptnCatId = 4;
        multiOptnItem = 1345;
    }
)
我可以用什么有效的方式将其转换为:

(
        {
        multiOptnCatId = 4;
        multiOptnItem = (1342, 1343, 1344, 1345, 1346);
    },
        {
        multiOptnCatId = 7;
        multiOptnItem = (2253);
    }
)

谢谢大家!:)

不创建原始数组,然后需要将其转换是有效的。你是怎么创作的?@Wain,谢谢你的回复。我从服务器端获取数据。非常感谢!:):)我现在有了所需的数据。
NSArray *array = ...; // your input array

// All categories as array:
NSArray *catArray = [array valueForKey:@"multiOptnCatId"];
// All categories as set (to remove duplicates):
NSSet *catSet = [NSSet setWithArray:catArray];

NSMutableArray *rearranged = [NSMutableArray array];
// For all categories ...
for (NSString *cat in catSet) {
    // Get matching dictionaries for this category:
    NSArray *filtered = [array filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"multiOptnCatId = %@", cat]];
    // Get "multiOptnItem" values for this category:
    NSArray *items = [filtered valueForKey:@"multiOptnItem"];
    // Add category + multiOptnItem values to rearranged array:
    [rearranged addObject:@{@"multiOptnCatId":cat, @"multiOptnItem":items}];
}