条件绑定的初始化器必须是 Optional 类型,而不是 'DynamicLinks'

Initializer for conditional binding must have Optional type, not 'DynamicLinks'

我在构建 iOS 应用程序时遇到此错误。

我在此处加粗的行显示错误

这是我的代码

@available(iOS 8.0, *)
func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([Any]?) -> Void) -> Bool {
    **guard let dynamicLinks = DynamicLinks.dynamicLinks() else {**
        return false
    }
    let handled = dynamicLinks.handleUniversalLink(userActivity.webpageURL!) { (dynamiclink, error) in
        self.openURL(url: userActivity.webpageURL!)
    }

    if !handled {
        if let url = userActivity.webpageURL?.absoluteString {
            self.openURL(url: URL(string: url)!)
        }
    }
    return handled
}

显然 DynamicLinks.dynamicLinks() 不会产生可选结果。将您的代码更改为:

func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([Any]?) -> Void) -> Bool {

    let dl = DynamicLinks.dynamicLinks()

    let handled = dl.handleUniversalLink(userActivity.webpageURL!) { (dynamiclink, error) in
        self.openURL(url: userActivity.webpageURL!)
    }

    if !handled {
        if let url = userActivity.webpageURL?.absoluteString {
            self.openURL(url: URL(string: url)!)
        }
    }
    return handled
}