ios - (SWIFT 3) 创建父子托管对象上下文

标签 ios swift core-data swift3 nsmanagedobjectcontext

我有一个在主队列上工作的聊天应用程序,我想通过创建父级和子级托管对象上下文来提高性能,其中父级位于主队列上,子级位于专用队列上。因为当我一次发送大量消息时,用户界面会变慢一点!

我遇到的问题是我自动生成了核心数据堆栈。我什至不知道如何访问我的托管对象上下文。有人可以给我一些关于如何开始的建议吗?

   lazy var persistentContainer: NSPersistentContainer = {
    let container = NSPersistentContainer(name: "Reveal_Swift_3")
    container.loadPersistentStores(completionHandler: { (storeDescription, error) in
        if let error = error as NSError? {

            fatalError("Unresolved error \(error), \(error.userInfo)")
        }
    })
    return container
}()

// MARK: - Core Data Saving support

func saveContext () {
    let context = persistentContainer.viewContext
    if context.hasChanges {
        do {
            try context.save()
        } catch {
            let nserror = error as NSError
            fatalError("Unresolved error \(nserror), \(nserror.userInfo)")
        }
    }
}

最佳答案

使用 persistentContainer.viewContext 来处理 UI 内容,使用 persistentContainer.performBackgroundTask(block:) 来处理后台任务。

关于ios - (SWIFT 3) 创建父子托管对象上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39808931/

相关文章:

ios - SWIFT:var someVariable:int = textfield.text.toInt() x textfield2.text.toInt() 并强制展开

ios - 在 Core Data 中存储自定义对象的 NSMutableArray

iOS 应用程序启动后立即关闭

ios - 在我的设备中安装 iPhone 应用程序

ios - 核心数据关系 - 增加现有值(value)

ios - 通过谓词进行整数比较

swift - iOS 应用程序可以创建并定期访问谷歌电子表格吗?

ios - 如何解决UITextView中的 "auto-scroll"?

Swift:在运行时在非可选中检测到意外的 nil 值:强制转换为可选失败

objective-c - 使用 NSFetchedresultsController 对 'transient' 字段进行排序