【问题标题】:Access to CoreData without UIApplication无需 UIApplication 即可访问 CoreData
【发布时间】:2014-11-14 18:25:45
【问题描述】:

我想在没有 UIApplication.sharedApplication() 的情况下访问 CoreData,因为我想从 Extension 和 Application 管理 CoreData。 例如我不想使用:

var appDel:AppDelegate = (UIApplication.sharedApplication().delegate as AppDelegate)
var context:NSManagedObjectContext = appDel.managedObjectContext!

但是使用没有 UIApplication 的东西...

谢谢!

【问题讨论】:

  • 应用代理的扩展?
  • 我的意思是今天扩展......我想从我的应用程序的 ViewController 以及 TodayViewController 访问核心数据......
  • 您在应用程序委托中设置它,然后从您想要的任何视图控制器访问它。创建一个新项目并选择“使用核心数据”,然后检查应用程序委托中的代码。这是存储该代码的最佳位置,因为它具有“applicationDidTerminate”和仅在应用程序委托中调用的其他方法,这些方法是保存托管对象上下文的好地方
  • 我知道这一点,但我需要快速使用该代码来访问核心数据。例如函数...
  • 不完全确定这是否是重复的,因为它在 Objective-C 中,但它是这样工作的:stackoverflow.com/questions/21050408/… 你应该能够将它翻译成 Swift,依赖注入是一个非常简单的概念有一个花哨的名字。

标签: ios xcode core-data swift


【解决方案1】:

我只想让 App Delegate 不拥有托管对象上下文。我知道自动生成的核心数据代码可以做到这一点,但我觉得将核心数据与您的应用委托结合起来是一种糟糕的形式。

【讨论】:

  • 同意上述。最好在单独的对象中设置 CoreData 堆栈,或者将 manageObjectContext 传递给 viewController,以便应用程序的不同部分可以根据自己的意愿使用/分支它们。默认代码只是模板代码,并不意味着您必须按原样使用它。
猜你喜欢
  • 1970-01-01
  • 2013-08-16
  • 2013-11-26
  • 2015-07-01
  • 2021-06-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多