Swift 用于框架的统一openURL+;应用程序+;延伸

Swift 用于框架的统一openURL+;应用程序+;延伸,swift,ios8,Swift,Ios8,我有一个iOS 8的Swift应用程序,它有一个应用程序组件、一个扩展组件和一个包含大量共享资源的框架——共享视图控制器、共享资产等。在框架中的某一点上,我想调用 UIApplication.sharedApplication().openURL(someURL) 但如果在选中“仅允许应用程序扩展API”时执行此操作,则会出现错误,因为UIApplication.sharedApplication()在扩展中不可用。如果我取消选中该框,我会收到一条警告,即在扩展中包含框架可能不安全,并且我担心

我有一个iOS 8的Swift应用程序,它有一个应用程序组件、一个扩展组件和一个包含大量共享资源的框架——共享视图控制器、共享资产等。在框架中的某一点上,我想调用

UIApplication.sharedApplication().openURL(someURL)
但如果在选中“仅允许应用程序扩展API”时执行此操作,则会出现错误,因为UIApplication.sharedApplication()在扩展中不可用。如果我取消选中该框,我会收到一条警告,即在扩展中包含框架可能不安全,并且我担心在提交时间方面可能会导致拒绝

如果此代码仅用于扩展,我将使用以下代码:

extensionContext.openURL(someURL, completionHandler: nil)
…但这在独立应用程序中不起作用,只在扩展中起作用

修改我的代码以确保扩展从未调用UIApplication.sharedApplication().openURL()行,应用从未调用extensionContext.openURL()行是很简单的,但这并不能消除错误-只是扩展API框架中存在UIApplication.sharedApplication()会导致错误

那么,在我开始研究黑客之前,有没有一个干净的解决方案可以让我调用openURL并采取正确的操作,而不会导致编译错误

提前谢谢

声明一个全局