ios - 应用程序和扩展 - 使用核心数据 == 错误 : sharedApplication()' is unavailable

标签 ios iphone xcode swift

我正在尝试在公开的额外类文件中读取/写入数据。 (StoreData.swift)

我的功能:

  func FetchName (NameforDate: String) -> NSString
         {
             var appDel:AppDelegate = (UIApplication.sharedApplication().delegate as AppDelegate)
             var context:NSManagedObjectContext = appDel.managedObjectContext! 
    }

在“(UIApplication.sharedApplication().”所在的行,我得到了错误:

StoreData.swift:115:49: 'sharedApplication()' is unavailable: Use view controller based solutions where appropriate instead.

我创建了 App 和 Today Extension。

最佳答案

如果您需要一个托管对象上下文,您可以在您的扩展中创建您自己的上下文。您将无法使用您的 AppDelegate。我建议将其从您的应用程序委托(delegate)移出到可以在两者之间共享的类。您仍然可以监听核心数据更新,因此它们不需要共享上下文/持久存储坐标。

编辑:

我想指出,扩展本质上是一个不同的沙盒。因此,如果您创建一个共享类,实例将不会在应用程序和扩展之间共享。因此使持久存储协调器和上下文不同。

关于ios - 应用程序和扩展 - 使用核心数据 == 错误 : sharedApplication()' is unavailable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26934888/

相关文章:

iphone - iOS 开发 : How can I induce low memory warnings on device?

ios - 使用 swift Xcode 6 的默认选项卡栏项目颜色

ios - 将 willSet block 分配给 iOS isResting 属性

ios - 在 Apple Maps 中绘制 GeoJson 作为叠加层

iphone - 如何将 iPhone Core Data 与 Web 服务器同步,然后推送到其他设备?

iphone - Xcode 上的所有设备目标都变为 "unavailble"

iphone - 如何检查服务器的可达性

ios - 发布后iOS7与iOS6之间的兼容性

ios - Xcode 5 编辑后 UITextField 上的字体大小错误

iphone - 获取名称以001XXX.jpg开头的所有资源