【问题标题】:(SWIFT 3) create parent child managed object context(SWIFT 3) 创建父子托管对象上下文
【发布时间】:2016-10-01 16:28:37
【问题描述】:

我有一个在主队列上运行的聊天应用程序,我想通过创建父子托管对象上下文来提高性能,其中父对象在主队列中,子对象在私有队列中。因为当我一次发送大量消息时,UI 会变慢一点!

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

   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)")
        }
    }
}

【问题讨论】:

    标签: ios swift core-data swift3 nsmanagedobjectcontext


    【解决方案1】:

    persistentContainer.viewContext 用于您的 UI 内容,将persistentContainer.performBackgroundTask(block:) 用于后台任务。

    【讨论】:

      【解决方案2】:

      用途:

                       persistentContainer.newBackgroundContext() 
      

      代替:

                        persistentContainer.viewContext()
      

      newBackgroundContext() 创建私有托管上下文。

      这是创建上下文的方法:

          var privateUserContext : NSManagedObjectContext {
              get {
                  return userPersistentContainer.newBackgroundContext()
              }
          }
      

      而且每次使用都可以这样保存。

                          do{
                               try privateUserMOC.save()
      
                          }
                          catch{
                               print("Error")
                          }
      

      这对我有用....祝你好运!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-12-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多