我尝试使用此功能从自定义网址接收参数:
func application(_ application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool {
return true;
}
然而,该函数从未被调用,我收到警告:"实例方法'应用程序(:openURL:sourceApplication:annotation :)'几乎匹配可选参数' application(:open:sourceApplication:annotation :)'协议' UIApplicationDelegate。
基于XCode 8 Warning "Instance method nearly matches optional requirement"我尝试使用@objc但没有成功。如何构建一个在打开应用程序时调用的函数,并从自定义URL方案中提供参数?
答案 0 :(得分:5)
请参阅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;
}