swift2 UI应用程序.sharedApplication()不可用

flseospp  于 2022-11-06  发布在  Swift
关注(0)|答案(6)|浏览(217)

我刚刚从Xcode 6.4升级到Xcode 7 GM,并开始更改代码以符合Swift 2。我无法克服以下错误。
该项目是键盘扩展,代码段来自包含的应用程序。

let s = "https://itunes.apple.com/"
    UIApplication.sharedApplication().openURL(NSURL(string : s)!)

错误1:“sharedApplication()”不可用:在适当的情况下,请改用基于视图控制器的解决方案。
错误2:“openURL”不可用。
这可能与Xcode和AppDelegate有关,我可能搞砸了我的项目。

muk1a3rh

muk1a3rh1#

当我在做一个框架的时候。我遇到了这个问题。手动设置为NO解决了我的问题。

5cg8jx4n

5cg8jx4n2#

您无法从扩展访问每个API。请参阅Apple的扩展开发指南:某些API对应用程序扩展不可用

由于应用程序扩展在系统中的主要角色,因此它没有资格参与某些Activity。应用程序扩展不能:
访问sharedApplication对象,因此不能使用该对象上的任何方法

等等等等。

jxct1oxe

jxct1oxe3#

您的目标可能已选中“仅允许应用程序扩展API”选项。
检查目标的常规设置,以查看是否在部署信息〉应用程序扩展中启用了该选项。

pcrecxhr

pcrecxhr4#

雨燕3.0
在我的例子中,我在一个小部件(这是一个扩展)中有这个消息,代码是从我的应用程序复制/粘贴的。

UIApplication.shared.open(NSURL(string:"https://

self.extensionContext?.open(NSURL(string:"https://
4smxwvx5

4smxwvx55#

在包含应用程序的类不知何故进入了扩展构建阶段的编译资源列表。我删除了它们,现在没事了。
我没有这样做。显然升级到Xcode 7 GM过程不知何故做到了。

2ic8powd

2ic8powd6#

嗨我解决了这个问题。
对于发出此错误(如IQKeyboardManager)的特定框架,将“允许API扩展”设置为“否”
假设您在IQKeyboardManager上遇到了这个问题,并且您使用Pod安装了这个框架。然后您的项目点击Pod -〉点击IqKeyboardManager。
并将“允许API扩展”设置为“否

相关问题