好的,所以我正在尝试为我的应用程序构建这个统计跟踪器,并且我已经构建了一个名为 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;id:0x3e1e1b0;数据:) 2010-05-19 11:30:38.173 verses[29526:207] *** 由于未捕获的异常“NSUnknownKeyException”而终止应用程序,原因:“[valueForUndefinedKey:] :实体 StatTracker 不符合键“timesLauched”的键值编码。2010-05-19 11:30:38.174 诗句[29526:207] 堆栈:(