所以在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."
检查
john.residence?.address?.street
我了解residence
中可选链接的使用情况,但我们如何知道链实际上在哪里(如果address
或nil
为residence
} )。我们可以确定address
或nil
是if-else
,还是我们需要再次使用{{1}}进行检查?
答案 0 :(得分:8)
if let residence = john.residence {
if let address = residence.address {
...
} else {
println("missing address")
}
} else {
println("missing residence")
}
答案 1 :(得分:5)
我不这么认为。可选链接是一种方便的快捷语法,您可以放弃一些控制以及几个按键。
如果你真的需要知道链断裂的确切位置,你必须通过链接链接到多个变量。
答案 2 :(得分:2)
无法确定可选链接停止的位置。但是你可以使用:
if let johnsStreet = john.residence?.address?.street {
println("John's street name is \(johnsStreet).")
} else if let johnAddress = john.residence?.address {
println("Unable to retreive street, but John's address is \(johnAddress).")
} else {
println("Unable to retrieve the address.")
}