2017-08-12 96 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