이 항목에 대한 대부분의 질문을 읽었지만 어떻게 든이 문제를 파악할 수 없습니다.managedObjectContext 전달 문제
AppDelegate의 ManagedObjectContext를 초기 뷰 콘트롤러가 데이터도 처리했던 이전 애플리케이션의 첫 번째 뷰로 손쉽게 넘겨 주었다.
이제 새로운 응용 프로그램을 만들 때 사용자가 선택해야하는 초기 화면이 필요합니다 (몇 가지 가능한 단추를 통해). 이 화면에서 내 MOC는 문제 해결 (NSLog 메시지가 내게 MOC에 유효한 주소를 제공함)에 따라 그대로 유지됩니다.
선택이 끝나면 앱은 TableView가있는 UIViewController로 진행합니다. 이 관점에서 데이터를 관리 할 수 있어야하지만 MOC는 아무 것도 반환하지 않습니다.
응용 프로그램은 UINavigationController를 통해 다음보기로 진행합니다.
나는 내 AppDelegate에에 다음 코드를 통합 :UINavigationController *navigationController = (UINavigationController *)self.window.rootViewController;
InitialViewController *controller = (InitialViewController *)navigationController.topViewController;
controller.managedObjectContext = self.managedObjectContext;
return YES;
InitialViewController 모두가 여전히 잘되는 경우, FIRST의 ViewController입니다.
다음 viewcontroller는 MasterViewController라고하며 NSFetchedControllerDelegate입니다. 여기에서는 NOC에 액세스 할 수없는 것 같습니다. 나는 동일한 주제에 대해 이전의 질문에서 제안 된 여러 접근법과 해결책을 시도했지만 아무 것도 효과가없는 것으로 보인다.
올바른 코딩을 통해 MasterViewController에서 NOC를 작동시키는 방법은 무엇입니까?
오, 그래, 근무 솔루션 중 하나는 다음 코드를 삽입합니다 MasterViewController에있는 viewDidLoad 이후 :
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
self.managedObjectContext = appDelegate.managedObjectContext;
내 MOC는 구할 수 있지만이 그것을 할 올바른 방법인가?
왜 나는 세그 (segue)를 통해 그것을 넘겨주는 것을 생각하지 않았는가? 이것은 전역 변수를 선언하지 않고도 우아한 방법처럼 보입니다. 오늘 내 코드에서이 코드를 시험해보고 내 결과와 함께 돌아올 것입니다. 그러나이 코드가 제대로 작동해야한다고 생각합니다. –
예상대로 정상적으로 작동하는지 테스트했습니다. 의견을 보내 주셔서 감사합니다. 종종 극복하기 어려운 문제는 다소 간단한 해결책이 있습니다. –