根据UIKit diff文档,在ios9/Swift 2中
var text: String! 已经成为 var text: String?
根据UITextField的文档,它特别说
This string is @"" by default.
我不明白这种改变的目的.如果文本字段完全存在,那么该属性是否应始终为空字符串?该字段在什么时候返回一个空字符串?一旦用户与之交互?一旦它被添加到视图层次结构中?它在什么时候返回nil?
如果文本字段首先存在,是否始终可以假设文本属性也存在?这似乎只是它会导致大量的查找/替换.text到.text!
我没有看到文档中提到它的位置,所以也许有人有一些背景故事或帮助解释为什么会改变.
我试着看看用于Int的Swift API,我仍然不确定为什么这样做:
var foo = Int("100")
Run Code Online (Sandbox Code Playgroud)
我在文档中看到以下初始化器:
init()
init(_: Builtin.Word)
init(_: Double)
init(_: Float)
init(_: Int)
init(_: Int16)
init(_: Int32)
init(_: Int64)
init(_: Int8)
init(_: UInt)
init(_: UInt16)
init(_: UInt32)
init(_: UInt64)
init(_: UInt8)
init(_:radix:)
init(_builtinIntegerLiteral:)
init(bigEndian:)
init(bitPattern:)
init(integerLiteral:)
init(littleEndian:)
init(truncatingBitPattern: Int64)
init(truncatingBitPattern: UInt64)
Run Code Online (Sandbox Code Playgroud)
但我没有看到init(_: String)上面的内容.引擎盖下是否有一些自动化?