2016-10-01 68 views
0

我有一個聊天應用程序,它在主要隊列上工作,我想通過創建父級和子託管對象上下文來提高性能,其中父級在主隊列上,並且孩子在私人隊列中。因爲當我一次發送很多消息時,UI會變慢一點!(SWIFT 3)創建父子託管對象上下文

我遇到的問題是我自動生成了我的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)") 
     } 
    } 
} 

回答

0

使用persistentContainer.viewContext您的UI的東西,persistentContainer.performBackgroundTask(block:)後臺任務。

0

用途:

    persistentContainer.newBackgroundContext() 

相反的:

    persistentContainer.viewContext() 

newBackgroundContext()創建一個私人管理的環境。

這是如何創建上下文:

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

而且每次使用它的時候,你可以將它保存這種方式。

    do{ 
         try privateUserMOC.save() 

        } 
        catch{ 
         print("Error") 
        } 

這爲我做....好運氣!

相關問題