【问题标题】:Getting this error : Initializer for conditional binding must have Optional type, not 'Bool'收到此错误:条件绑定的初始化程序必须具有可选类型,而不是“布尔”
【发布时间】:2018-11-20 10:32:14
【问题描述】:
func application(_ app: UIApplication, open url: URL, options:
        [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {

        if let isDynamicLink = DynamicLinks.dynamicLinks() .shouldHandleDynamicLink(fromCustomSchemeURL: url) {
            let dynamicLink = DynamicLinks.dynamicLinks().dynamicLink(fromCustomSchemeURL: url)
            return handleDynamicLink(dynamicLink)
        }
        return true
    }

【问题讨论】:

  • shouldHandleDynamicLink方法的返回类型是什么?
  • 布尔返回类型
  • 那你就不需要可选链了。
  • dynamicLinks()的返回类型是什么?

标签: ios swift firebase firebase-dynamic-links


【解决方案1】:

⌥-click shouldHandleDynamicLink 你会看到声明

func shouldHandleDynamicLink(fromCustomSchemeURL url: URL) -> Bool

返回类型是非可选的。移除可选绑定

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

    if DynamicLinks.dynamicLinks().shouldHandleDynamicLink(fromCustomSchemeURL: url) {
        let dynamicLink = DynamicLinks.dynamicLinks().dynamicLink(fromCustomSchemeURL: url)
        return handleDynamicLink(dynamicLink)
    }
    return true
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-11
    • 2017-01-22
    • 2018-03-25
    • 2016-01-08
    • 2017-04-08
    • 2016-09-23
    • 1970-01-01
    相关资源
    最近更新 更多