首先,我是CoreData的新手。處理CoreData不在RootViewController中(遷移vanilla coredata-project)
現在我創建了一個vanilla CoreData-project,並將所有代碼複製到我想要實現CoreData的項目中。
在CoreData香草項目,第一視圖 - 控制(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;
}
但我想我的第二個視圖控制器,來處理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;
}
我怎樣才能解決這個問題?
順便說一句:最終,有人也知道,爲什麼原型單元不在我的tableview的頂部。謝謝。
我懷疑你只是通過零管理的對象上下文。您的應用程序委託是否初始化Core Data堆棧?這就是上下文獲得價值的方式。 – bilobatum
我編輯了我的問題並添加了managedObjectContext方法 – Christian