我应该为每个 ViewController Swift 创建一个新的 managedObjectContext

Should I make a new managedObjectContext for each ViewController Swift

我想知道执行 managedObjectContext 的最佳做法是什么。当我今年早些时候开始学习 swift / iOS / Xcode 时,我将这一行放在 class 的每个 class 中用于 ViewControllers / TableViewControllers.

let moc = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext

一切正常。但后来我想我在某个时候读到一些东西说对每个 ViewController / TableViewController 使用相同的 managedObjectContext。我将其解释为将我的原始 moc 变量发送到每个 ViewController / TableViewController。为此,我开始在 'prepareForSegue' 函数中发送它。所以只有第一个视图有上面的代码,其他所有视图都有 var moc: NSManagedObjectContext? 可以从 prepareForSegue 函数中设置。

但我了解得越多,我开始认为 AppDelegate 正在创建实际的 managedObjectContextlet moc = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext 行只是将 managedObjectContext 设置为 moc 变量, 而不是实际制作一个新的 managedObjectContext.

所以我应该继续使用 prepareForSegue 函数将我的 moc 变量发送到所有链接的 ViewControllers / TableViewControllers,还是我不应该担心它并使用顶部的代码进行设置?

谢谢。

let moc = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext

这很好,因为它不会创建新的上下文,而只是为您提供对同一上下文的新引用。事实上,它与 "sending original moc variable in the 'prepareForSegue' function" 没有任何不同。您正在以两种不同的方式做完全相同的事情,仅此而已。

阅读 Swift 中的值和引用类型:Classes and structures