如何知道可选链接在哪里破碎?

Nik*_*ono 7 optional swift

因此在iOS Swift中,我们可以执行可选链接来简化nil检查,就像在官方文档中一样

let johnsAddress = Address()
johnsAddress.buildingName = "The Larches"
johnsAddress.street = "Laurel Street"
john.residence!.address = johnsAddress
if let johnsStreet = john.residence?.address?.street {
    println("John's street name is \(johnsStreet).")
} else {
    println("Unable to retrieve the address.")
}
// prints "John's street name is Laurel Street."
Run Code Online (Sandbox Code Playgroud)

我了解在选购链接的使用john.residence?.address?.street,但我们怎样才能知道实际链条断裂(如果任一residence或者addressnil).我们可以判断residence或者addressnil,或者我们需要与检查一遍if-else

Ama*_*dan 8

那不要做链.如果你不打算停止,这条链只会很有趣.如果你这样做,请在有趣的地方进行分解 - 否则,你会在哪里输入不良案例的代码?

if let residence = john.residence {
  if let address = residence.address {
    ...
  } else {
    println("missing address")
  }
} else {
  println("missing residence")
}
Run Code Online (Sandbox Code Playgroud)


Thi*_*ilo 5

我不这么认为.可选链接是一种方便的快捷语法,您可以放弃一些控制以及几个按键.

如果你真的需要知道链断裂的确切位置,你必须通过链接链接到多个变量.