我刚刚从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有关,我可能搞砸了我的项目。
6条答案
按热度按时间muk1a3rh1#
当我在做一个框架的时候。我遇到了这个问题。手动设置为NO解决了我的问题。
5cg8jx4n2#
您无法从扩展访问每个API。请参阅Apple的扩展开发指南:某些API对应用程序扩展不可用
由于应用程序扩展在系统中的主要角色,因此它没有资格参与某些Activity。应用程序扩展不能:
访问sharedApplication对象,因此不能使用该对象上的任何方法
等等等等。
jxct1oxe3#
您的目标可能已选中“仅允许应用程序扩展API”选项。
检查目标的常规设置,以查看是否在部署信息〉应用程序扩展中启用了该选项。
pcrecxhr4#
雨燕3.0
在我的例子中,我在一个小部件(这是一个扩展)中有这个消息,代码是从我的应用程序复制/粘贴的。
由
4smxwvx55#
在包含应用程序的类不知何故进入了扩展构建阶段的编译资源列表。我删除了它们,现在没事了。
我没有这样做。显然升级到Xcode 7 GM过程不知何故做到了。
2ic8powd6#
嗨我解决了这个问题。
对于发出此错误(如IQKeyboardManager)的特定框架,将“允许API扩展”设置为“否”
假设您在IQKeyboardManager上遇到了这个问题,并且您使用Pod安装了这个框架。然后您的项目点击Pod -〉点击IqKeyboardManager。
并将“允许API扩展”设置为“否