【问题标题】:Use AppDelegate in today extension在今天的扩展中使用 AppDelegate
【发布时间】:2015-04-18 17:20:30
【问题描述】:

我正在尝试为我的应用构建一个 Today 扩展。

我正在使用CoreDataNSFetchedResultsController 并收到以下错误:

使用未声明的类型“AppDelegate”

在这行代码中:

var appDel: AppDelegate = UIApplication.sharedApplication().delegate as AppDelegate. 

有人知道如何解决这个错误/在今天的扩展中使用 AppDelegate 并愿意帮助我吗?

【问题讨论】:

  • 你有正确的导入语句吗?
  • 您是否将您的应用程序委托重命名为与 AppDelegate 不同的名称?
  • 正确的导入语句是什么意思@milo526(导入 AppDelegate 不起作用)。不,我不会重命名我的应用程序委托(我真的不知道该怎么做)。
  • 你导入 UIKit 和 Foundation 了吗?
  • 我遇到了同样的问题。你找到解决方案了吗?我正在尝试向现有项目添加扩展,并共享现有的核心数据数据库。我们和你有同样的问题。那么,你如何解决这个问题呢?

标签: ios swift appdelegate ios8-today-widget today-extension


【解决方案1】:

Today Extension 不是应用程序,因此 UIApplication 和 AppDelegate 不可用。我不确定你想用 AppDelegate 做什么,但扩展确实有一个 NSExtensionContext 可通过调用:

 self.extensionContext

【讨论】:

  • 我想使用 NSFetchedResultsController 来使用 CoreData。
  • NSFetchedResultsController 不绑定到 UIApplicationDelegate。如果您想在今天的扩展中使用它,只需在 TodayViewController 中使用它即可。我猜在您的应用程序中,您在 AppDelegate 中使用 NSFetchedResultsController 从 CoreData 获取结果。如果您想在您的应用程序和扩展程序之间共享此代码,您需要将此代码移出 AppDelegate 并移入一个可供应用程序和扩展程序使用的框架。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-10
相关资源
最近更新 更多