0

1.iOS8提供asynchronousFetchRequest,我們也可以創建一個「私人情境」來獲取結果,那麼究竟是什麼asynchronousFetchRequest之間的差異「創建一個私有的情況下」?「asynchronousFetchRequest」和「創建私有上下文」有什麼區別?

2.類型NSFetchedResultsController的上下文必須是MainQueueConcurrencyType?(阻止用戶界面?)有什麼解決方案來解決呢?

+0

在#2上,解決任何解決方案*什麼*? –

+0

如果它必須是MainQueueConcurrencyType,當我加載數據時,UI將被阻塞,如何解決這個問題? – Joyann

回答

0

AsynchronousFetchRequest將創建另一個上下文並在該上下文中執行提取。自己創建私有上下文意味着您可以在後臺上下文中處理managedObjects,而無需在執行該工作時阻止主線程。如果你有自己的上下文,雖然你將不得不將自己的managedObjects轉移到主線程上,儘管異步獲取請求已經這樣做了。 FetchedResutlsControllers不一定需要一個MainQueueConcurrency上下文,但要記住,如果它的PrivateQueueConcurrency比緩存不起作用,並且需要使用performBlock:方法才能使用這些對象。在爲FRC提取對象時,您的UI可能會被阻塞,但不應該花費很長時間。如果你首先需要核心數據指標的實體速度。如果你想在提取之前確保你有數據,你可以使用帶有countForFetchRequest的AsynchronousFetchRequest來返回一個數字並相應地執行操作。