NSArray中的NSDictionary

时间:2011-08-28 22:48:39

标签: iphone objective-c nsarray nsdictionary

关于NSArrays和NDictionarys的快速问题。

我和NSArray包含NSDictionarys。 NSDictionary包含日期和字符串。

我想要做的是最终得到一个NSDictionary,其中包含日期和值的字符串数组。

最好的方法是什么

2 个答案:

答案 0 :(得分:2)

由于我没有看到任何合理的动机,我们称之为代码高尔夫。

NSMutableArray *dates = [NSMutableArray array];
NSMutableArray *strings = [NSMutableArray array];

for (NSDictionary *dict in dictArray) {
    [dates addObject:[dict objectForKey:@"date"]];
    [strings addObject:[dict objectForKey:@"string"]];
}

NSArray *datesArray = [[NSArray alloc] initWithArray:dates];
NSArray *stringsArray = [[NSArray alloc] initWithArray:strings];

答案 1 :(得分:2)

NSMutableDictionary *result = [NSMutableDictionary dictionary];
for (NSDictionary *dict in array) {
    NSDate *date = [dict objectForKey:@"dateKey"];
    NSString *string = [dict objectForKey:@"stringKey"];
    NSMutableArray *stringsWithDate = [result objectForKey:date];
    if (!stringsWithDate) {
        stringsWithDate = [NSMutableArray array];
        [result setObject:stringsWithDate forKey:date];
    }
    [stringsWithDate addObject:string];
}

请注意,NSDate不是“日历日期”,因此具有不同时间的同一天将被视为结果字典中的不同日期。