在赋值语句的左侧使用可选链是什么意思?如果可选变量为零,应用程序会崩溃吗?
例如
// cell is a UITableViewCell
cell.textLabel?.text = "Test"
在赋值语句的左侧使用可选链是什么意思?如果可选变量为零,应用程序会崩溃吗?
例如
// cell is a UITableViewCell
cell.textLabel?.text = "Test"
有点像短路&&
运算符,当它达到第一个假值时停止,可选链接将在它达到第一个 nil 值时停止。
因此,在极端情况下,例如container?.cell?.textLabel?.text = "foo"
,容器、单元格或 textLabel 中的任何一个都可能为 nil。如果其中任何一个是,则该声明实际上是无操作的。只有当整个链非零时才会发生分配。
它只是作为一个可选的,你可以将它设置为一个字符串或 nil。它们都不会使应用程序崩溃,除非您打开变量而不捕获它是否为 nil,当它为 nil 时。如果您的链中的任何内容是可选的,那么您的整个链都是(或至少是可选之后的所有内容)