1.iOS8提供了asynchronousFetchRequest ,我们也可以创建一个'private context'来获取结果,那么asynchronousFetchRequest和' create a private context '有什么区别呢?
2.NSFetchedResultsController的上下文类型必须是MainQueueConcurrencyType?(阻塞 UI?)有什么解决方案可以解决这个问题吗?
1.iOS8提供了asynchronousFetchRequest ,我们也可以创建一个'private context'来获取结果,那么asynchronousFetchRequest和' create a private context '有什么区别呢?
2.NSFetchedResultsController的上下文类型必须是MainQueueConcurrencyType?(阻塞 UI?)有什么解决方案可以解决这个问题吗?
AsynchronousFetchRequest 将创建另一个上下文并在该上下文上执行获取。自己创建私有上下文意味着您可以在后台上下文中处理 managedObjects,而不必在执行该工作时阻塞主线程。如果您有自己的上下文,尽管您必须自己将 managedObjects 传输到主线程,而异步获取请求已经在执行此操作。FetchedResutlsControllers 不一定需要 MainQueueConcurrency 上下文,但请记住,如果它的 PrivateQueueConcurrency,则缓存将不起作用,您将需要使用performBlock:
方法以使用对象。在为 FRC 获取对象时,您的 UI 可能会被阻止,但这不会花费很长时间。如果您首先需要核心数据索引您的实体的速度。如果您想确保在获取之前有数据,您可以使用带有 countForFetchRequest 的 AsynchronousFetchRequest 来只返回一个数字并采取相应的行动。