Во-первых, я действительно новичок в CoreData.Ручка CoreData не в RootViewController (миграция проекта-ванили)
Теперь я создал проект Vanilla CoreData и скопировал весь код в мой проект, в котором я хочу реализовать CoreData.
В проекте CoreData-ванильным, первый ViewController (MasterViewController), представляет собой контроллер, который обрабатывает managedObjectContext:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
UINavigationController *navigationController = (UINavigationController *)self.window.rootViewController;
BilderViewController *controller = (BilderViewController *)navigationController.topViewController;
controller.managedObjectContext = self.managedObjectContext;
return YES;
}
Но я хочу, чтобы мой второй ViewController, чтобы справиться с CoreData:
Как вы видите здесь, я хочу, чтобы «Bilder» -Viewcontroller обрабатывал/использовал основные данные. Каждый метод находится в этом контроллере, поэтому он должен работать. Я уже пытался изменить метод:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
BilderViewController *controller = [[BilderViewController alloc] init];
controller.managedObjectContext = self.managedObjectContext;
return YES;
}
Но чем, я получаю сообщение об ошибке:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+entityForName: nil is not a legal NSManagedObjectContext parameter searching for entity name 'Event''
Мой managedObjectContext-метод:
// Returns the managed object context for the application.
// If the context doesn't already exist, it is created and bound to the persistent store coordinator for the application.
- (NSManagedObjectContext *)managedObjectContext
{
if (_managedObjectContext != nil) {
return _managedObjectContext;
}
NSPersistentStoreCoordinator *coordinator = [self persistentStoreCoordinator];
if (coordinator != nil) {
_managedObjectContext = [[NSManagedObjectContext alloc] init];
[_managedObjectContext setPersistentStoreCoordinator:coordinator];
}
return _managedObjectContext;
}
Как я могу это исправить ?
Btw: В конце концов, кто-то также знает, почему прототип-ячейка не находится в верхней части моего стола. Спасибо.
Я подозреваю, что вы просто обходите ноль вокруг контекста управляемого объекта. Инициализирует ли ваш делегат приложения стек Core Data? Вот как контекст получает значение. – bilobatum
Я отредактировал свой вопрос и добавил метод managedObjectContext – Christian