【问题标题】:UIApplication.sharedApplication not availableUIApplication.sharedApplication 不可用
【发布时间】:2016-03-17 11:09:54
【问题描述】:

我正在尝试从 UIViewController 获取对我的应用委托的引用,但我不断收到以下错误消息:

'sharedApplication()' 不可用:在适当的情况下使用基于视图控制器的解决方案。

我一直在阅读所有处理此类消息的文章,但我的问题似乎无关紧要,因为我没有使用任何第三方框架。虽然 Today Extension 是我的应用程序的一部分,但发生错误的类是完全不相关的。我什至创建了一个全新的类并不断收到相同的错误:

当我在操场上做同样的事情时,它工作得很好。我错过了什么?

【问题讨论】:

  • 这是应用扩展还是标准应用?您的应用是否包含应用扩展程序?
  • 该错误发生在应用程序本身。该应用程序确实有一个扩展,但我试图从应用程序中获取 appDel,而不是从扩展程序中获取。所有发生错误的类都与扩展没有明显的关系。
  • 检查以确保给出错误的文件没有错误地与扩展目标关联 - 请参阅stackoverflow.com/questions/32609776/…
  • 是的,不知道还能去哪里检查。它可能在架构或构建设置中吗?任何提示表示赞赏。
  • @MuhammadWaqasBhati:请不要在问题中添加诸如“谢谢”之类的噪音。

标签: ios swift ios-app-extension ios9.1 xcode7.1


【解决方案1】:

问题解决了。我再次访问了我的应用程序的构建设置并偶然发现了

Require Only AppExtension-Safe API

全部设置为“是”。但默认值为 NO。当我将其设置为 NO 时,错误消失了。

我当然不记得曾经接触过甚至不知道这件事,但幸运的是现在它起作用了。

【讨论】:

  • 错误已删除,但默认共享视图不存在。
  • 有效!一些可可豆也有同样的问题。我必须为 pod 项目中的相应目标更改它来修复它。自从我第一次尝试仅将它应用于我的构建目标时,我花了一段时间才弄明白。
  • 您好,我遇到了同样的问题,但即使应用到您的解决方案也无法解决问题
  • 我已经有一个项目我需要添加扩展我按照其他教程中提到的过程但是当有人想使用我的应用扩展共享图像时我想要一个自定义布局所以当我使用当用户点击共享时我需要包含的类包含 appdelegate 实例你有上述问题。你能给我一些公会线来解决这个问题吗
  • 如果您有应用扩展并将要求设置为No,Apple 商店可能会拒绝您的应用。
【解决方案2】:

我在创建新目标并将其添加到我的项目(远程服务通知目标)并在我的 podfile 中错误地添加目标定义时遇到了同样的错误。

我遵循第三方通知平台的指示,但他们不清楚将目标定义放置在何处。最初,我在我的主要目标中添加了目标定义,很像Tests 目标定义。这个错误导致我犯了这个错误。

我最终将远程服务通知目标定义从我的主要目标移到了我的 podfile 的底部,这解决了我的问题。

【讨论】:

  • 我也遇到了同样的事情。有问题的第三方通知平台是 OneSignal。
【解决方案3】:

以防有人在提问时间 3 年后遇到此错误。 确保 swift 文件目标 Membership 不包含 Today Extension。

【讨论】:

    【解决方案4】:

    就我而言,我没有在导致错误的文件中定义import Foundation。 愚蠢和迟到,但可以帮助像我这样心不在焉的人。干杯。

    【讨论】:

    • 不正确。您可以在 OP 的问题中看到他们已经在导入 UIKit,而 UIKit 本身会导入 Foundation。当您已经导入 UIKit 时,您不需要手动导入 Foundation,并且无论如何这样做都不会解决 OP 的问题,因为它与 Foundation 无关。
    猜你喜欢
    • 2015-12-13
    • 1970-01-01
    • 1970-01-01
    • 2015-12-06
    • 1970-01-01
    • 1970-01-01
    • 2016-10-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多