1.iOS8提供了 asynchronousFetchRequest ,我们还可以创建一个私有上下文'要获取结果,那么 asynchronousFetchRequest 和' 创建私有语境'
之间的区别是什么?2. NSFetchedResultsController的上下文的类型必须是 MainQueueConcurrencyType ?(阻止用户界面?)是否有解决此问题的解决方案?
答案 0 :(得分:0)
AsynchronousFetchRequest将创建另一个上下文并在该上下文上执行提取。自己创建私有上下文意味着您可以在后台上下文中处理托管对象,而无需在执行该工作时阻止主线程。如果你有自己的上下文,虽然你必须自己将managedObjects转移到主线程,虽然async fetch请求已经在做了。 FetchedResutlsControllers不一定需要MainQueueConcurrency的上下文,但要记住,如果它的PrivateQueueConcurrency,而不是缓存将不起作用,您将需要使用performBlock:
方法来处理对象。在为FRC获取对象时,您的UI可能会被阻止,但这不应该花费很长时间。如果您需要从核心数据索引到您的实体的速度。如果要确保在获取之前有数据,可以使用带有countForFetchRequest的AsynchronousFetchRequest来返回一个数字并相应地执行操作。