零检查后发现无

use*_*852 0 swift

即使我在使用该值之前检查nil,我也会收到意外发现的nil错误.我错过了什么吗?

if self.orders[indexPath.row]["distanceToHouseHold"] != nil {
    cell.distanceTextField.text = "\(self.orders[indexPath.row]["distanceToHouseHold"] as! String)m"
}
Run Code Online (Sandbox Code Playgroud)

当然,错误在第二行.

red*_*t84 6

可能distanceToHouseHold不是String,并且在类型转换时失败.尝试使用if-let支票或新guard支票.

if let distance = self.orders[indexPath.row]["distanceToHouseHold"] as? String {
    cell.distanceTextField.text = "\(distance)m"
}
Run Code Online (Sandbox Code Playgroud)

  • 因为很可能,`self.orders [indexPath.row] ["distanceToHouseHold"]`不是一个字符串,它没有进入if分支. (3认同)