关于NSArrays和NDictionarys的快速问题。
我和NSArray包含NSDictionarys。 NSDictionary包含日期和字符串。
我想要做的是最终得到一个NSDictionary,其中包含日期和值的字符串数组。
最好的方法是什么
答案 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
不是“日历日期”,因此具有不同时间的同一天将被视为结果字典中的不同日期。