如果你已經對Swift精通,請略過此文,不惜勿噴,謝謝!
Swift在我心目中的地位: Swift是一門將要替代OC,并且正在替代OC,必然要替代OC的語言;作為一個iOS開發者,如果不想被淘汰,就必須要學Swift;
--
一 認識可選項
Swift里邊有一個特殊的存在--可選項,要知道在Swift中String,Array等對象類型的變量不能復制為nil,會報錯,錯誤如下:
Paste_Image.png
那么怎么把一個對象賦值為空呢,這就需要用到可選項了,如下代碼就不會報錯了:
Paste_Image.png
可以看到,定義可選項變量并不復雜,只要在類型后邊加一個"?"就可以了;
二 什么時候需要聲明可選項
總體的原則是: 有需要將對象賦值為空的時候需要用到可選項
例如定義模型的時候可以用可選項,代碼如下:
import UIKit
class Model: NSObject {
var name:String?
var age:Int?
var classes:Int?
override init() {
super.init()
}
}
如果不用可選項,代碼如下:
import UIKit
class Model: NSObject {
var name:String
var age:Int
var classes:Int
override init() {
super.init()
}
}
就會報錯,錯誤如下:
Paste_Image.png
也就是需要給 name,age,classes賦一個初始值,解決報錯有以下兩種辦法:
在聲明時候賦值.png
在初始化方法里賦值.png
三 使用可選項
在使用的時候需要強制解包,解包運算符是"!",例如
let model = Model()
model.age = 10
model.name = "老王"
model.classes = 2
print("我的名字叫" + model.name! + ",今年" +
String(describing: model.age!) + "歲,我的班級是5年級" +
String(describing: model.classes!) + "班." )
打印結果是:我的名字叫老王,今年10歲,我的班級是5年級2班.