먼저 CoreData를 처음 접했습니다.Handle CoreData가 RootViewController에 없음 (바닐라 coredata-project 마이그레이션)
이제 바닐라 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;
}
을하지만 CoreData를 처리하기 위해, 내 두 번째의 ViewController를 원하는 :
여기서 볼 수 있듯이, "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 : 궁극적으로 누군가가 왜 프로토 타입 셀이 내 tableview의 맨 위에 있지 않은지 알고 있습니다. 고마워.
나는 당신이 단지 관리 대상 객체 컨텍스트에 대해 아무 것도하지 않고 있다고 생각합니다. 앱 위임자가 핵심 데이터 스택을 초기화합니까? 컨텍스트가 값을 얻는 방법입니다. – bilobatum
질문을 편집하고 managedObjectContext 메소드를 추가했습니다. – Christian