我想知道执行 managedObjectContext
的最佳实践是什么。今年早些时候,当我第一次开始学习 swift/iOS/Xcode 时,我将这一行放在 ViewControllers/TableViewControllers 的每个类中。
let moc = (UIApplication.sharedApplication().delegate as!AppDelegate).managedObjectContext
一切正常。但后来我想我在某个时候读到一些东西说对每个 ViewController/TableViewController 使用相同的 managedObjectContext
。我将其解释为将我的原始 moc 变量发送到每个 ViewController/TableViewController。为此,我开始在“prepareForSegue”函数中发送它。因此,只有第一个 View 具有上面的代码,而其他所有 View 都只有 var moc: NSManagedObjectContext?
可以从 prepareForSegue
函数中设置。
但我了解得越多,我开始认为 AppDelegate 正在创建实际的 managedObjectContext
和 let moc = (UIApplication.sharedApplication().delegate as! AppDelegate) .managedObjectContext
行只是将 managedObjectContext
设置为 moc 变量,而不是实际创建一个新的 managedObjectContext
。
所以我应该继续使用 prepareForSegue
函数将我的 moc 变量发送到所有链接的 ViewControllers/TableViewControllers,还是我不应该担心它并使用顶部的代码设置它?
谢谢。
最佳答案
let moc = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext
这很好,因为它不会创建新的上下文,而只是为您提供对同一上下文的新引用。事实上,它与“在‘prepareForSegue’函数中发送原始 moc 变量”没有任何不同。您正在以两种不同的方式做完全相同的事情,仅此而已。
阅读 Swift 中的值和引用类型:Classes and structures
关于ios - 我应该为每个 ViewController Swift 创建一个新的 managedObjectContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37684720/