关于使用CoreData
(我无法找到问题的答案),我完全不了解一件事:你如何使用UIViewcontrollers
一个多个VC
的应用?
目前我正在玩多个控制器中的核心数据,我在每个 let app = UIApplication.sharedApplication().delegate as! AppDelegate
let context = app.managedObjectContext
let entity = NSEntityDescription.entityForName("EntityName", inManagedObjectContext: context)!
let entityName = EntityName(entity: entity, insertIntoManagedObjectContext: context)
中输入了这个:
CoreData
但我不认为这是在多个控制器上使用CoreData
的最佳做法(方面的问题:这会对我的应用程序的性能产生影响吗?)。什么是最喜欢的方式?
'*didFinishLaunchingWithOptions*'
的创建创建单身人士? 我在某处读过这不是首选的方式 Log
中设置公共上下文变量)?提前致谢!
答案 0 :(得分:0)
3→设置公共主队列MOC是一种很好的做法。因为主队列是一个串行队列。
1→使用主队列MOC仅用于为每次编辑获取和创建子MOC是一种很好的做法。因为编辑可以获取的MOC可能会导致冲突。
2→您可以尝试创建单例实例以获取共享主队列MOC,并定义一些创建子上下文以进行编辑的函数。
4->但实际上抽象情况并不是最佳实践。
我想是的。
答案 1 :(得分:-1)
您尝试做的是避免代码重复。因此,只需将代码放入一个函数中并将其放在某处。它可以是UIViewControler
或AppDelegate
的扩展名,也可以只是辅助函数
UIViewController
上的扩展名如下:
extension UIViewController
{
func doCoreDataWork()
{
let app = UIApplication.sharedApplication().delegate as! AppDelegate
let context = app.managedObjectContext
let entity = NSEntityDescription.entityForName("EntityName", inManagedObjectContext: context)!
let entityName = EntityName(entity: entity, insertIntoManagedObjectContext: context)
}
}
然后从任何视图控制器调用doCoreDataWork()
。
不,它与性能无关