我应该为每个 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 正在创建实际的 managedObjectContext
而 let 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
我想知道执行 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 正在创建实际的 managedObjectContext
而 let 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