Имате проблем със създаването на NSDictionary?

Създавам календар, който се свързва с календар на Google с помощта на API на Google. Намерих страхотен календар, който мога да използвам извън Github. Сега конвертирам JSON данните, които получавам от API на google, във формат, подходящ за изгледа на календара от GitHub.

Трябва да съхраня NSObject, вътре в NSArray, вътре в NSDictionary, вътре в NSDictionary.

NSObject - малък NSObject, който съхранява заглавие, описание, дати и т.н.

NSArray- съхранява всички NSObjects (ред по-горе)

NSDictionary (първият) - съхранява NSArray (ред по-горе) като обект и месеца на оригиналния обект като ключ

NSDictionary (втори) - съхранява "Речника на месеците" (ред по-горе) като обект и оригиналния обект като ключ.

Към момента той ще добави правилната година в „Годишния речник“, но няма да съхранява правилно другите данни.

ето моят код, този код ще се изпълнява за всяко събитие във for цикъл в различен метод.

ATEvent *event = [ATEvent new];
event.title = eventGiven[@"summary"];
event.summary = eventGiven[@"description"];
[event compileStartDate:eventGiven[@"start"]];
[event compileEndDate:eventGiven[@"end"]];
event.location = eventGiven[@"location"];

NSCalendar *defaultCalendar = [NSCalendar currentCalendar];
NSDateComponents *components = [defaultCalendar components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay fromDate:date]; // Get necessary date components

NSString *month = [NSString stringWithFormat:@"%li",(long)[components month]];
NSString *year = [NSString stringWithFormat:@"%li",(long)[components year]];

NSMutableDictionary *yearDictionary = [[NSMutableDictionary alloc] initWithDictionary:dataByDate];
NSMutableDictionary *monthDictionary = [[NSMutableDictionary alloc] initWithDictionary:yearDictionary[month]];
NSMutableArray *monthArray = [[NSMutableArray alloc] initWithArray:monthDictionary[month]];

[yearDictionary setObject:monthDictionary forKey:year];
[monthDictionary setObject:monthArray forKey:month];
[monthArray addObject:event];

NSLog(@"%@",yearDictionary);

dataByDate = yearDictionary;

Благодаря, прекарах часове в гледане, мислейки всичко това логично и не разбирам къде греша! :|


person Elijah Cobb    schedule 31.01.2016    source източник


Отговори (1)


Първо, ако искате да изградите вашите годишни и месечни речници за съхраняване на събития, не искате да ги създавате отново всеки път, когато се появи събитие. Трябва да създадете речниците (едногодишни и дванадесетмесечни речници предполагам) отвън на цикъла за обработка на събития. Също така искате да създадете празен масив за съхраняване на събитията. След това искате да добавите всяко събитие в масива за съответния месец и подходящата година.

person john elemans    schedule 31.01.2016