美文网首页iOS学习
Swift基础-可选项

Swift基础-可选项

作者: 半缘魔君 | 来源:发表于2017-02-10 11:30 被阅读0次

    如果你已经对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班.

    相关文章

      网友评论

        本文标题:Swift基础-可选项

        本文链接:https://www.haomeiwen.com/subject/girgittx.html