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

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

提问人:Sazzad Hissain Khan 提问时间:3/16/2020 更新时间:3/16/2020 访问量:109

问:

我收到以下方法的警告,

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
}

警告:

实例方法“application(application:handleOpenURL:)”几乎与协议“UIApplicationDelegate”的可选要求“application(_:handleOpen:)”匹配

建议:

将“application(application:handleOpenURL:)”设为私有以消除此警告

但是,我怀疑该函数是否应该是私有的,因为当触发 oAuth 回调时,iOS 固件本身会触发该函数。

为什么 iOS 建议私密?

iOS Swift 警告 AppDelegate

评论


答:

2赞 mag_zbc 3/16/2020 #1

你正在实现一个函数,但你拼错了函数签名,这使得你的函数与协议中的函数非常相似,但并不完全是 - 这就是编译器抱怨的原因。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

相反