1
關於NSArrays和NDictionarys的快速提問。NSArray內的NSDictionary
我有和NSArray包含NSDictionarys。 NSDictionary包含一個日期和一個字符串。
我想要做的就是結束一個NSDictionary,其中包含日期和字符串的鍵數組。
什麼是做到這一點
關於NSArrays和NDictionarys的快速提問。NSArray內的NSDictionary
我有和NSArray包含NSDictionarys。 NSDictionary包含一個日期和一個字符串。
我想要做的就是結束一個NSDictionary,其中包含日期和字符串的鍵數組。
什麼是做到這一點
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
不是「日曆日期」,所以用不同的時間在同一天將被視爲在結果字典中的不同日期。
由於我沒有看到這樣做的合理動機的最好方式,我們稱之爲代碼高爾夫球。
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];
我已經確定所有的NSDate在00:00使用這個NSCalendar * cal = [NSCalendar currentCalendar]; [cal setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]]; NSDateComponents * comp = [cal組件:(NSMonthCalendarUnit | NSYearCalendarUnit | NSDayCalendarUnit)fromDate:tempDate]; NSDate * dateToAdd = [cal dateFromComponents:comp]; – user913059
should [result setObject:stringsWithDate forKey:date]; 在if語句之後,在完成之後完成,THANKKKS! – user913059
實際上,它應該在if語句內使用'[set setObject:...]'。 – omz