Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 将NSArray排序并分组为新的NSMutablearray_Objective C_Sorting_Nsarray_Grouping - Fatal编程技术网

Objective c 将NSArray排序并分组为新的NSMutablearray

Objective c 将NSArray排序并分组为新的NSMutablearray,objective-c,sorting,nsarray,grouping,Objective C,Sorting,Nsarray,Grouping,我有一个NSMutableDictionary*dict,它包含一个带有kfoo键的NSArray。我想用数组的内容重新构建数组,以便将它们放入新的组中。我怎样才能做到这一点 2013-12-16 06:28:14.236 weather[1246:303] { kfoo = ( ( AAAAA, 11111, sun ), (

我有一个NSMutableDictionary*dict,它包含一个带有kfoo键的NSArray。我想用数组的内容重新构建数组,以便将它们放入新的组中。我怎样才能做到这一点

2013-12-16 06:28:14.236 weather[1246:303] {
    kfoo =     (
                (
            AAAAA,
            11111,
            sun
        ),
                (
            BBBBB,
            22222,
            mond
        ),
                (
            CCCCC,
            33333,
            sun
        ),
                (
            DDDDD,
            44444,
            water
        )
    );
}
从上面的日志来看,这是我想要的:

2013-12-16 06:28:14.236 weather[1246:303] {
    kfoo =     (
            sun =(
            AAAAA,
            11111,
            CCCCC,
            33333
        ),
            mond =(
            BBBBB,
            22222
        ),
            water =(
            DDDDD,
            44444
        )
    );
}

像这样的怎么样?这假设您的密钥名始终位于索引2,理想情况下,您应该找到一种更可靠的方法来确定密钥。你需要把kfoo传进去

- (NSMutableDictionary *) processWeatherArray:(NSArray *)toProcess {
    NSMutableDictionary *toReturn = [NSMutableDictionary dictionary];

    for(NSArray *array in toProcess)
    {
        NSString *key = array[2];
        if ([toReturn objectForKey:key] == nil) {
            [toReturn setObject:[NSMutableArray array] forKey:key];
        }
        NSMutableArray *keyValue = [toReturn objectForKey:key];

        for(int i=0; i<array.count; i++)
        {
            if (array[i] != key)
            {
                [keyValue addObject:array[i]];
            }
        }
    }
    return toReturn;
}

请详细解释一下,多阵列一直是我的噩梦:非常感谢!