Я новичок в IOS и пытаюсь сделать учебник по основным данным. Следующий код компилируется, но затем сбой. Точка останова показывает ошибку ниже, но я не могу понять, что она означает или как ее исправить. Tutorial. Вот код ..ios/xcode: ошибка метаданных ядра в NSManagedObjectContext
- (void)viewDidLoad {
[super viewDidLoad];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity =[NSEntityDescription entityForName:@"FailedBankInfo" inManagedObjectContext:managedObjectContext];
[fetchRequest setEntity:entity];
NSError *error;
self.failedBankInfos = [managedObjectContext executeFetchRequest:fetchRequest error:&error];
self.title = @"Failed Banks";
}
Здесь ошибка:
managedObjectContext = (NSmanagedObjectContext *) nil
Вот что консоль показывает.
2015-01-14 19:28:50.084 coredata-wend[39693:1857624] Name: Test Bank
2015-01-14 19:28:50.086 coredata-wend[39693:1857624] Zip: 12345
2015-01-14 19:28:50.086 coredata-wend[39693:1857624] Name: Test Bank
2015-01-14 19:28:50.086 coredata-wend[39693:1857624] Zip: 12345
2015-01-14 19:28:50.086 coredata-wend[39693:1857624] Name: Test Bank
2015-01-14 19:28:50.086 coredata-wend[39693:1857624] Zip: 12345
2015-01-14 19:28:50.086 coredata-wend[39693:1857624] Name: Test Bank
2015-01-14 19:28:50.086 coredata-wend[39693:1857624] Zip: 12345
2015-01-14 19:28:50.087 coredata-wend[39693:1857624] Name: Test Bank
2015-01-14 19:28:50.087 coredata-wend[39693:1857624] Zip: 12345
2015-01-14 19:28:50.087 coredata-wend[39693:1857624] Name: Test Bank
2015-01-14 19:28:50.087 coredata-wend[39693:1857624] Zip: 12345
2015-01-14 19:28:50.087 coredata-wend[39693:1857624] Name: Test Bank
2015-01-14 19:28:50.087 coredata-wend[39693:1857624] Zip: 12345
2015-01-14 19:28:50.087 coredata-wend[39693:1857624] Name: Test Bank
2015-01-14 19:28:50.087 coredata-wend[39693:1857624] Zip: 12345
2015-01-14 19:28:50.087 coredata-wend[39693:1857624] Name: Test Bank
2015-01-14 19:28:50.088 coredata-wend[39693:1857624] Zip: 12345
2015-01-14 19:28:50.093 coredata-wend[39693:1857624] Name: Test Bank
2015-01-14 19:28:50.094 coredata-wend[39693:1857624] Zip: 12345
2015-01-14 19:28:50.094 coredata-wend[39693:1857624] Name: Test Bank
2015-01-14 19:28:50.094 coredata-wend[39693:1857624] Zip: 12345
2015-01-14 19:28:50.094 coredata-wend[39693:1857624] Name: Test Bank
2015-01-14 19:28:50.094 coredat
a-wend[39693:1857624] Zip: 12345
(lldb)
Поблагодарили бы за любые предложения по устранению неисправностей.
Я не совсем понимаю, что я имею в виду. Этот проект основан на основном приложении Apple. Связанный с этим связанный выше ретранслятор Ray Wenderlich помещает следующее в файл делегирования приложения: at-property (readonly, strong, nonatomic) NSManagedObjectContext * managedObjectContext; он синтезируется в .m-файле с помощью _managedObjectContext . Также в главном контроллере представления: at-property (неатомный, сильный) NSManagedObjectContext * managedObjectContext; Он синтезируется в файле .m с управляемым объектом ObjectContext no underscore. Это может быть проблема? – user1904273
Похоже, что и ваш делегат приложения, и ваш контроллер вида имеют 'managedObjectContext'. Но заявить, что они существуют, недостаточно, вы должны также дать им значения. Скорее всего, где-то в вашем делете приложения вы должны установить 'managedObjectContext' контроллера представления, чтобы оно имело то же значение, что и в вашем делете приложения. –
Этот метод находится в app delegate ...- (NSManagedObjectContext *) managedObjectContext { if (_managedObjectContext! = Nil) { return _managedObjectContext; } NSPsistentStoreCoordinator * coordinator = [self persistentStoreCoordinator]; если (! Координатор) { return nil; } _managedObjectContext = [[NSManagedObjectContext alloc] init]; [_managedObjectContext setPersistentStoreCoordinator: coordinator]; return _managedObjectContext; } Я не вижу, чтобы его вызывали. – user1904273