实例方法 'application(application:handleOpenURL:)' 几乎符合可选要求

Instance method 'application(application:handleOpenURL:)' nearly matches optional requirement

我收到以下方法的警告,

func application(application: UIApplication, handleOpenURL url: NSURL) -> Bool {

    print("URL openning: \(String(describing: url.absoluteString))")
    os_log("URL openning:: %{public}s", url.absoluteString!)

    return true
}

警告:

Instance method 'application(application:handleOpenURL:)' nearly matches optional requirement 'application(_:handleOpen:)' of protocol 'UIApplicationDelegate'

建议:

Make 'application(application:handleOpenURL:)' private to silence this warning

但是,我怀疑该函数是否应该是私有的,因为当 oAuth 回调被触发时,它将由 iOS fw 本身触发。

为什么iOS建议私密?

你正在实现一个来自 UIApplicationDelegate 的函数并且你拼错了函数签名,这使得你的函数与协议中的函数非常相似,但不完全 - 这就是编译器抱怨的原因。

您缺少下划线 _ - application 参数在调用函数时没有标签:

optional func application(_ application: UIApplication, handleOpen url: URL) -> Bool

其次,您无论如何都不应该使用该函数,因为它已在 iOS 中弃用 10. 使用

optional func application(_ app: UIApplication, 
                       open url: URL, 
                        options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool

改为