Я совершенно новичок в программировании основных данных. я просто пытаюсь найти лучшее место для реализации кода основных данных. Я сделал учебник «Местоположение» для Apple, и он сработал хорошо. Теперь я пытаюсь перенести это в свой текущий проект, что немного сложнее.
в учебнике Locations показан один RootViewController, включая программно созданный tableView. мой проект основан на шаблоне tabView. ему принадлежит MainWindow.xib, включая TabBarController, включая три ViewController (MapView, ListView, SettingsView), где каждое представление имеет свой собственный navigationController и xib-файл.
Первым камнем преткновения было изменение кода, который он будет запускать с xib для tableView вместо его программного создания. Мне это удалось, но есть еще одна ошибка. Я не могу подключить managedObjectContext из appDelegate к listViewController. Я пробовал примеры и предложения по этой проблеме с этого форума здесь. но это все еще не работает.
посмотрев на образец проекта CoreDataBooks, я увидел, что код основных данных также был реализован в RootViewController. Похоже, это был бы неправильный способ реализовать это в ListViewController. Но в моем проекте нет RootViewController. В AppDelegate я напрямую передаю tabBarController как rootViewController. поэтому я не знаю, как добраться до listViewController для установки контекста, как это было сделано в примере Locations.
Поскольку MapView - это первое представление, я не могу установить контекст в appDelegate. И после долгой борьбы с managedObjectContext я задаюсь вопросом, не лучше ли изобрести RootViewController, чтобы иметь возможность размещать там дополнительный код. модель должна быть доступна для всех трех представлений, и кажется, что RootViewController - правильное место.
Но как мне совместить это с tabBarController, который включает еще три viewController на основе xib-файлов? Может ли кто-нибудь порекомендовать мне примеры или учебные материалы, включающие основные данные на основе приложения с панелью вкладок?
tab1.managedObjectContext = self.managedObjectContext
, который передает ваш контекст выбранным представлениям. Вы должны настроить выходы в IB, а затем использовать[self.window addSubview:tabBarController.view]
и[self.window makeKeyAndVisible]
. Если у вашего метода есть проблемы, я буду рад поделиться более подробной версией - person justin   schedule 11.07.2011