收到此错误:条件绑定的初始化程序必须具有可选类型,而不是“布尔”
Posted
技术标签:
【中文标题】收到此错误:条件绑定的初始化程序必须具有可选类型,而不是“布尔”【英文标题】: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()
的返回类型是什么?
【参考方案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
【讨论】:
以上是关于收到此错误:条件绑定的初始化程序必须具有可选类型,而不是“布尔”的主要内容,如果未能解决你的问题,请参考以下文章
条件绑定的初始化程序必须具有可选类型,而不是“Bool”-firebase
条件绑定的初始化程序必须具有可选类型,而不是“UIView”
条件绑定的初始化程序必须具有可选类型,而不是“UIView”