【发布时间】:2018-01-09 10:52:06
【问题描述】:
字符串?与“”
为什么 Apple 在很多情况下(但不是在所有地方)都使用 optional String?例如,如果你有一个UILabel,你可以通过两种方式清除它:
label.text = ""
label.text = nil
因为text 属性是Optional<String>。
他们为什么这样做?仅仅是为了兼容Objective-C,还是有其他实际原因?存储nil 是否比存储"" 更节省内存? String? 的性能会比 String? 稍好一些吗?
假设我需要创建一个带有 text 属性的结构或类,它可以是空的。它应该是可选的吗?
【问题讨论】:
-
语义上,空不等于nil。见i.stack.imgur.com/j9vg8.jpg ;)
标签: objective-c swift string null optional