В моем представленииWillAppear Я выполняю несколько запросов на выборку. Я заметил, что при первом запросе выборки ничего не найдено, хотя я знаю, что элементы должны быть найдены. Я попробовал спящий основной поток перед выполнением первого запроса на выборку, и были найдены достаточное количество элементов. Я просто работаю на симуляторе тоже.Основные данные iOS «Время инициализации»?
Так что мой вопрос в том, что Core Data занимает некоторое время, чтобы «инициализировать» или что-то еще? Должен ли я беспокоиться об этом при тестировании на устройстве (у меня пока нет членства в разработчике, поэтому я не могу проверить его на устройстве)? Есть ли способ «проверить», если безопасно выполнить запрос на выборку?
Я также проверил NSError для первого запроса на выборку без задержки и был равен нулю.
EDIT:
Моего viewWillAppear код был предложен так вот она. Не очень полезно.
[NSThread sleepForTimeInterval:0.1];
for (NSString *category in self.categories) {
[self updateSection:category];
}
self.cateogires - это только мои разделы моего вида таблицы и updateSection: обновляет разделы.
EDIT2:
Я сделал некоторые дальнейшее изучение с заявлениями NSLog и вот что я нашел.
Я добавил инструкции NSLog для регистрации количества объектов, найденных после запроса на выборку, а также текущего состояния документа. По какой-то причине я получаю результаты получения, даже несмотря на то, что документ закрыт.
Category1 has 3 values
Doc is open? NO
Category2 has 6 values
Doc is open? NO
Category3 has 3 values
Doc is open? NO
Category4 has 2 values
Doc is open? NO
Я думаю, что моя проблема в том, что я не использую в completionHandler из [myManagedDocument openWithCompletionHandler:] ждать и выполнить мою просьбу выборки. Однако почему же я получаю результаты fet, если я запрашиваю, когда документ закрыт?
Можете ли вы опубликовать код из своего метода просмотраWillAppear? – Alex
Возможно, ваш контекст управляемого объекта или постоянный координатор хранилища или что-то еще в вашем стеке сохранения не инициализирован и равен нулю? Вызов запроса выборки на объекте nil не приведет к ошибке, он просто ничего не сделает в соответствии с политикой Objective-C для вызовов на nil. – morningstar
Или, может быть, у вас есть постоянный координатор магазина, но не добавил никаких постоянных магазинов, хотя я думаю, что это дает ошибку, но не уверен. – morningstar