2017-08-12 63 views
1

我有这个线故障检索分公司深层链接参数:问题在斯威夫特

let isBranchLinkKey = "+clicked_branch_link" 
guard let didClickBranchLink = params[isBranchLinkKey] as? Int else { return } 

didClickBranchLink为零,即使在调试器的参数是存在的。

下面是我的调试器的截图:

second screenshot

+0

print'param'并检查'didClickBranchLink'是否可以转换为int。 – adev

+0

根据Branch.io文档和我已经确认,didClickBranchLink将为0或1。 – ben

+0

尝试控制台中的'po params [isBranchLinkKey]'并查看它打印的内容。 – adev

回答

1

正如编辑的截屏中提到,paramBranchLinkboolean值(注意:在左侧的调试器__NSCFBoolean),但你想投的Int中后卫声明。由于在swift中两种都是不同的类型,所以guard语句会失败。你应该改变你的警戒声明,将其作为Bool的值。

guard let didClickBranchLink = params[isBranchLinkKey] as? Bool else { return } 

这应该给在didClickBranchLink一个boolean值,你可以在你的后面部分的代码中使用它。

+0

嘿,这工作。你让我意识到params [isBranchLinkKey]实际上是一个可选项也是有帮助的。如果演员和参数[isBranchLinkKey]都是可选零的可选项,则警戒声明不起作用。 – ben