Как остановить приложение Core Data от автоматической загрузки управляемогоObjectContext? - PullRequest
0 голосов
/ 25 марта 2011

Я создаю основное приложение для обработки данных, которое проверяет сохраненный пользовательский логин при запуске и впоследствии настраивает модель, хранилище, координатор и контекст.Единственная проблема, с которой я столкнулся, заключается в том, что как только пользователь нажимает на любое представление в интерфейсе, приложение пытается получить управляемый объектObjectContext, что вызывает исключение, поскольку я еще не создал хранилища.

Есть лиспособ помешать этому?

Приветствия.

Ответы [ 2 ]

2 голосов
/ 25 марта 2011

Если вы используете вспомогательный материал Coredata, предоставленный Apple, вы заметите, что объект managedObjectContext загружается лениво, когда к его свойству обращаются.

Просто скажите контроллеру представления получить доступ к контексту через его свойство(т.е. self.managedObjectContext) вместо прямого доступа к переменной, и контекст, объектная модель и координатор постоянного хранилища будут созданы соответствующим образом.

PS: это всего лишь предположение, поскольку вы не опубликовали ни одного из вашихсвязанный код здесь.

0 голосов
/ 25 марта 2011

Почему вы показываете представления, которые зависят от контекста управляемого объекта, не создавая его уже или не организуя его при доступе?

Обычный шаблон - чтобы ваш получатель контекста управляемого объекта выглядел примерноthis:

- (NSManagedObjectContext *)managedObjectContext {
    if (!_managedObjectContext) {
        // create context, and store it in _managedObjectContext
    }
    return _managedObjectContext;
}

(в этом коде _managedObjectContext является иваром в классе для хранения контекста).Таким образом, контекст создается автоматически при необходимости.Стандартный пример кода Apple делает именно это для вас.

...