我有这个线故障检索分公司深层链接参数:问题在斯威夫特
let isBranchLinkKey = "+clicked_branch_link"
guard let didClickBranchLink = params[isBranchLinkKey] as? Int else { return }
didClickBranchLink
为零,即使在调试器的参数是存在的。
下面是我的调试器的截图:
。
我有这个线故障检索分公司深层链接参数:问题在斯威夫特
let isBranchLinkKey = "+clicked_branch_link"
guard let didClickBranchLink = params[isBranchLinkKey] as? Int else { return }
didClickBranchLink
为零,即使在调试器的参数是存在的。
下面是我的调试器的截图:
。
正如编辑的截屏中提到,paramBranchLink
是boolean
值(注意:在左侧的调试器__NSCFBoolean
),但你想投的Int
中后卫声明。由于在swift中两种都是不同的类型,所以guard语句会失败。你应该改变你的警戒声明,将其作为Bool
的值。
guard let didClickBranchLink = params[isBranchLinkKey] as? Bool else { return }
这应该给在didClickBranchLink
一个boolean
值,你可以在你的后面部分的代码中使用它。
嘿,这工作。你让我意识到params [isBranchLinkKey]实际上是一个可选项也是有帮助的。如果演员和参数[isBranchLinkKey]都是可选零的可选项,则警戒声明不起作用。 – ben
print'param'并检查'didClickBranchLink'是否可以转换为int。 – adev
根据Branch.io文档和我已经确认,didClickBranchLink将为0或1。 – ben
尝试控制台中的'po params [isBranchLinkKey]'并查看它打印的内容。 – adev