我刚刚从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有关,我可能搞砸了我的项目。
答案 0 :(得分:19)
您无法从扩展程序访问每个API。来自Apple的Extension dev指南: 某些API不适用于App Extensions
由于其在系统中的重点作用,应用扩展程序没有资格参与某些活动。应用扩展程序不能:
访问sharedApplication对象,因此无法使用该对象上的任何方法
等等。
答案 1 :(得分:17)
答案 2 :(得分:10)
答案 3 :(得分:5)
Swift 3.0
在我的情况下,我在Widget(这是一个扩展名)中有这条消息,代码是我的应用程序的复制/粘贴。就像汤姆罗格罗说我必须更换
UIApplication.shared.open(NSURL(string:"https://
通过
self.extensionContext?.open(NSURL(string:"https://
答案 4 :(得分:2)
包含app的类以某种方式进入扩展Build Phases的编译资源列表。我删除了它们,现在没关系。
我没有这样做。显然,以某种方式升级到Xcode 7 GM进程。
答案 5 :(得分:1)