如何处理swift(XCode 8)中的自定义urlscheme?

我试着用这个函数从自定义url中接收参数:

func application(_ application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool { return true; } 

然而,函数从来没有被调用,我收到警告:“实例方法”应用程序( :openURL:sourceApplication:annotation :)'几乎匹配协议'UIApplicationDelegate'的可选参数'application( :open:sourceApplication:annotation :)'。

基于XCode 8警告“实例方法几乎匹配可选要求”我尝试使用@objc没有成功。 我怎样才能build立一个函数,将打开应用程序时被调用,并给我从自定义urlscheme的参数?

请参阅UIApplicationDelegate的文档。 在Swift 3下,委托方法是:

 func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool { return true; } 

 func application(_ application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool { return true; } 

但是那个已经被弃用了。 你应该使用(与iOS 9.0和更高版本):

 func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool { return true; }