我想知道做managedObjectContext
的最佳做法是什么。今年早些时候我第一次开始学习swift / iOS / Xcode时,我把这一行放在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,还是我不应该担心它并使用顶部的代码设置它?
谢谢。
答案 0 :(得分:1)
let moc = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext
这非常好,因为它不会创建新的上下文,而只是为您提供对相同上下文的新引用。事实上,它与“在'prepareForSegue'函数中发送原始moc变量没有任何区别”。你用两种不同的方式做同样的事情,就是这样。
阅读Swift中的值和引用类型:Classes and structures