Swift基礎-可選項

如果你已經對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班.

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 發現 關注 消息 iOS 第三方庫、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 12,229評論 4 61
  • ?? 操作符的用法
    未知代碼閱讀 273評論 0 0
  • 《昨日與中立兄小濁》 金風催鐵騎, 駕車去它鄉。 晁兄乃諍友, 且看菊花黃。 昔年何英颯, 相望皆滄桑。 不便常聚...
    清風明月馮耀杰閱讀 172評論 0 3
  • 假期很快就來了,在我們的期盼和懼怕之中。 哥幾個陸續離校了,臉上沒有往年的喜悅,反而有些沉郁。或許,大家心里都明白...
    韋小天閱讀 263評論 0 0
  • 我們草原去 青色的草原上 跑著棕色的駿馬 金色的太陽 從草原升起 照亮了草原照亮了馬尾 我們草原去 我們草原去
    木木青苔閱讀 161評論 0 0