Ios 核心数据的并发性

Ios 核心数据的并发性,ios,objective-c,core-data,concurrency,nsmanagedobjectcontext,Ios,Objective C,Core Data,Concurrency,Nsmanagedobjectcontext,我正在使用核心数据获取/保存数据。在我的应用程序中,我使用了90%的核心数据和10%的web服务API。目前,我正在进行优化。早些时候,我尝试了NSOperationQueue和GCD操作。我找到了-performBlock:和-performBlockAndWait:来解析线程操作和异步(后台)进程。这更适合我的代码。我启动了managedobjectContext,concurrencytype为NSPrivateQueueConcurrencyType **在整个应用程序中单独使用NSPr

我正在使用核心数据获取/保存数据。在我的应用程序中,我使用了90%的核心数据和10%的web服务API。目前,我正在进行优化。早些时候,我尝试了NSOperationQueue和GCD操作。我找到了-performBlock:和-performBlockAndWait:来解析线程操作和异步(后台)进程。这更适合我的代码。我启动了managedobjectContext,concurrencytype为NSPrivateQueueConcurrencyType

**在整个应用程序中单独使用NSPrivateQueueConcurrencyType好吗**

NSManagedObjectContext *private = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSPrivateQueueConcurrencyType];

在任何地方都可以使用
NSPrivateQueueConcurrencyType
。这可能不方便,但这取决于你


NSMainQueueConcurrencyType
的优点是,如果代码在主队列上运行,则不需要
performBlock
performBlockAndWait
。这些方法只是在主队列上运行块,但是当您已经在主队列上时,这并没有什么区别。这可以简化与UI相关的代码。是否使用它是您的呼叫,取决于您觉得在代码中方便执行的操作。

在任何地方都可以使用
NSPrivateQueueConcurrencyType
。这可能不方便,但这取决于你


NSMainQueueConcurrencyType
的优点是,如果代码在主队列上运行,则不需要
performBlock
performBlockAndWait
。这些方法只是在主队列上运行块,但是当您已经在主队列上时,这并没有什么区别。这可以简化与UI相关的代码。是否使用它是您的电话,这取决于您觉得在代码中可以方便地执行的操作。

但是当我单独使用NSPrivateQueueConcurrencyType时,应用程序会崩溃。然后,您应该发布一个问题,描述崩溃并包括导致崩溃的代码。使用专用队列并发是可以的,但如果编写不正确,任何代码都可能会出现问题。但是,当我单独使用NSPrivateQueueConcurrencyType时,应用程序会崩溃。然后,您应该发布一个问题,描述崩溃并包括导致崩溃的代码。使用私有队列并发是可以的,但是任何代码如果写得不正确都可能成为问题。