Я новичок в программировании Какао и решил для своего первого проекта создать небольшое приложение для мониторинга и запоминания определенных характеристик батареи для моего ноутбука. (У меня он подключен большую часть времени, и Apple рекомендует разряжать его время от времени, так почему бы не попробовать создать небольшую программу, которая поможет вам вспомнить это?))
В любом случае, у меня есть стандартный проект Objective-C с файлом DataModel.
Он содержит объект, BatteryEvent, со свойствами, зарядом и событием.
Тогда у меня есть PowerListener.m (и .h).
PowerListener.m реализован следующим образом:
@implementation PowerListener
void myPowerChanged(void * context) {
printf("Is charging: %d\n", [PowerFunctions isCharging]);
printf("Is on ac: %d\n", [PowerFunctions isOnAC]);
printf("Charge left: %d\n", [PowerFunctions currentCapacity]);
printf("Powerchanged\n");
NSManagedObject *newBatteryEvent = [NSEntityDescription
insertNewObjectForEntityForName:@"BatteryEvent"
inManagedObjectContext:context];
}
- (PowerListener*) init {
self = [super init];
if(self) {
CFRunLoopSourceRef loop = IOPSNotificationCreateRunLoopSource(myPowerChanged, [[NSApp delegate] managedObjectContext]);
CFRunLoopAddSource(CFRunLoopGetCurrent(), loop, kCFRunLoopDefaultMode);
CFRelease(loop);
} else {
printf("Error\n");
}
return self;
}
@end
Моя проблема в том, что после того, как я запустил это (инициировано через main-метод main.m), и мощность действительно изменилась, я получаю сообщение об ошибке, в котором я пытаюсь создать новый объект BatteryEvent:
2009-08-19 17:59:46.078 BatteryApp[5851:813] +entityForName: could not locate an NSManagedObjectModel for entity name 'BatteryEvent'
Так мне кажется, что у меня неправильный ManagedContext? Как мне получить правильный?
Я даже на правильном пути здесь?
Я также пытался передать другой тип NSManagedObjectContext в функцию обратного вызова.
Я следовал этому руководству: Руководство по основным данным , но опять та же ошибка ...
Я в своем уме!
Любая помощь приветствуется!