【问题标题】:Concurrency in Core Data核心数据中的并发
【发布时间】:2017-11-21 11:28:24
【问题描述】:

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

**在整个应用程序中单独使用 NSPrivateQueueConcurrencyType 是否很好? **

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

【问题讨论】:

    标签: ios objective-c core-data concurrency nsmanagedobjectcontext


    【解决方案1】:

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

    NSMainQueueConcurrencyType 的优势在于,如果您的代码在主队列上运行,则不需要performBlockperformBlockAndWait。这些方法只会在主队列上运行块,但是当您已经在主队列上时,这并没有什么区别。这可以使与 UI 相关的代码更简单。是否使用它是你的决定,这取决于你觉得在你的代码中方便做什么。

    【讨论】:

    • 但是当我单独使用 NSPrivateQueueConcurrencyType 时应用程序崩溃了。
    • 然后你应该发布一个问题,在其中描述崩溃并包含导致它的代码。使用私有队列并发没问题,但如果写得不对,任何代码都可能成为问题。
    猜你喜欢
    • 1970-01-01
    • 2018-01-02
    • 2011-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多