发布于 2015-06-14 01:50:33 | 140 次阅读 | 评论: 0 | 来源: 网络整理
你可以使用可选链来尝试从子脚本获取值并检查子脚本的调用是否成功,然而,你不能通过可选链来设置子代码。
注意:
当你使用可选链来获取子脚本的时候,你应该将问号放在子脚本括号的前面而不是后面。可选链的问号一般直接跟在表达语句的后面。
下面这个例子用在Residence
类中定义的子脚本来获取john.residence
数组中第一个房间的名字。因为john.residence
现在是nil
,子脚本的调用失败了。
if let firstRoomName = john.residence?[0].name {
println("The first room name is (firstRoomName).")
} else {
println("Unable to retrieve the first room name.")
}
// 打印 "Unable to retrieve the first room name."。
在子代码调用中可选链的问号直接跟在john.residence
的后面,在子脚本括号的前面,因为john.residence
是可选链试图获得的可选值。
如果你创建一个Residence
实例给john.residence
,且在他的rooms
数组中有一个或多个Room
实例,那么你可以使用可选链通过Residence
子脚本来获取在rooms
数组中的实例了:
let johnsHouse = Residence()
johnsHouse.rooms += Room(name: "Living Room")
johnsHouse.rooms += Room(name: "Kitchen")
john.residence = johnsHouse
if let firstRoomName = john.residence?[0].name {
println("The first room name is (firstRoomName).")
} else {
println("Unable to retrieve the first room name.")
}
// 打印 "The first room name is Living Room."。