0

1.iOS8 при условии asynchronousFetchRequest, и мы можем также создать «частный контекст», чтобы получить результаты, так что разница между asynchronousFetchRequest и «создать частный контекст?В чем разница между «асинхроннымFetchRequest» и «созданием частного контекста»?

2. типа контекста NSFetchedResultsController в должен быть MainQueueConcurrencyType? (Блок пользовательского интерфейса?) Есть ли решение, чтобы решить эту проблему?

+0

На # 2, любое решение для решения * what *? –

+0

Если это должен быть MainQueueConcurrencyType, когда я загружаю данные, пользовательский интерфейс будет заблокирован, как это решить? – Joyann

ответ

0

AsynchronousFetchRequest создаст другой контекст и выполнит выборку в этом контексте. Создание частного контекста означает, что вы можете работать с managedObjects в фоновом контексте, не блокируя основной поток во время выполнения этой работы. Если у вас есть собственный контекст, хотя вам придется перенести ваши управляемые объекты на основной поток самостоятельно, хотя в то время как запрос асинхронной выборки уже делает это. FetchedResutlsControllers необязательно нужен контекст, который является MainQueueConcurrency, но помните, что если его PrivateQueueConcurrency, чем кеш, не будет работать, и вам нужно будет использовать метод performBlock: для работы с объектами. Пользовательский интерфейс может быть заблокирован при извлечении объектов для FRC, но это не займет много времени. Если вам нужна скорость от основного индекса данных, то ваши объекты сначала. Если вы хотите убедиться, что у вас есть данные перед извлечением, вы можете использовать AsynchronousFetchRequest с countForFetchRequest, чтобы просто вернуть число и действовать соответствующим образом.

Смежные вопросы