Хорошо, поэтому я пытаюсь создать этот трекер статистики для своего приложения, и я создал объект модели данных с именем statTracker, который отслеживает все, что я хочу. Я могу устанавливать и извлекать значения с помощью селекторов, но если я пытаюсь использовать KVC (то есть setValue: forKey:), все идет плохо и говорит, что мой класс StatTracker не совместим с KVC:
valueForUndefinedKey:]: объект StatTracker не совместим со значением ключа для ключа "timesLauched". '
2010-05-18 15: 55: 08.573
вот код, который его запускает:
NSArray *statTrackerArray = [[NSArray alloc] init];
statTrackerArray = [[CoreDataSingleton sharedCoreDataSingleton] getStatTracker];
NSNumber *number1 = [[NSNumber alloc] init];
number1 = [NSNumber numberWithInt:(1 + [[(StatTracker *)[statTrackerArray objectAtIndex:0] valueForKey:@"timesLauched"] intValue])];
[(StatTracker *)[statTrackerArray objectAtIndex:0] setValue:number1 forKey:@"timesLaunched" ];
NSError *error;
if (![[[CoreDataSingleton sharedCoreDataSingleton] managedObjectContext] save:&error]) {
NSLog(@"error writing to db");
}
Не уверен, достаточно ли этого кода для вас, ребята, дайте мне знать, что вам нужно, если вам нужно больше.
Это было бы так мило, если бы я мог использовать KVC, потому что тогда я мог бы абстрагировать весь этот материал отслеживания статистики в один вызов метода со строковым аргументом для рассматриваемого значения. По крайней мере, это то, что я надеюсь сделать здесь. Сейчас я на самом деле понимаю всю мощь KVC, но сейчас я просто пытаюсь понять, как заставить его работать.
Спасибо!
Ник
После добавления кода, предложенного ниже, вывод будет таким:
Объект: (объект: StatTracker; идентификатор: 0x3e1e1b0; данные:)
2010-05-19 11: 30: 38.173 стихи [29526: 207] *** Завершение работы приложения из-за необработанного исключения «NSUnknownKeyException», причина: «[valueForUndefinedKey:]: объект StatTracker не соответствует значению ключа, соответствующему кодированию для ключа "timesLauched".
2010-05-19 11: 30: 38.174 стихи [29526: 207] Стек: (