【问题标题】:Optional chaining used in left side of assignment in SwiftSwift 赋值左侧使用的可选链接
【发布时间】:2015-05-27 02:16:42
【问题描述】:

在赋值语句的左侧使用可选链是什么意思?如果可选变量为 nil,应用会崩溃吗?

例如

// cell is a UITableViewCell
cell.textLabel?.text = "Test"

【问题讨论】:

    标签: uitableview swift optional optional-chaining


    【解决方案1】:

    为了完整起见,除了@gregheo 回答:

    可以修改可选链表达式的展开值,方法是改变值本身,或者分配给值的成员之一。如果可选链表达式的值为nil,则不计算赋值运算符右侧的表达式。

    引自"Optional-Chaining Expression"

    【讨论】:

      【解决方案2】:

      有点像短路 && 运算符,当它达到第一个 false 值时停止,可选链接将在它达到第一个 nil 值时停止。

      所以在像container?.cell?.textLabel?.text = "foo" 这样的极端情况下,容器、单元格或文本标签中的任何一个都可能为零。如果其中任何一个是,则该声明实际上是无操作的。只有当整个链非零时才会发生分配。

      【讨论】:

      • 希望他们把这个嵌入到 Javascript 中......啊哈
      【解决方案3】:

      它只是作为一个可选的,你可以将它设置为一个字符串或 nil。它们都不会使应用程序崩溃,除非您打开变量而不捕获它是否为 nil,当它为 nil 时。 如果您的链中的任何内容是可选的,那么您的整个链都是(或至少是可选之后的所有内容)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-01-22
        • 1970-01-01
        • 2012-07-26
        • 2015-06-12
        • 2023-03-24
        • 1970-01-01
        • 2017-09-16
        • 1970-01-01
        相关资源
        最近更新 更多