溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Swift屬性觀察者

發(fā)布時(shí)間:2020-05-27 15:32:10 來(lái)源:網(wǎng)絡(luò) 閱讀:744 作者:hehemmm 欄目:移動(dòng)開(kāi)發(fā)

    為了監(jiān)聽(tīng)屬性的變化,Swift提供了屬性觀察者,屬性觀察者能夠監(jiān)聽(tīng)存儲(chǔ)屬性的變化,即便變化前后的值不同,它們也能監(jiān)聽(tīng)到,但它們不能延遲存儲(chǔ)屬性和常量存儲(chǔ)屬性的變化


    Swift中的屬性觀察者主要有以下兩種:


    1、willSet:觀察者在修改之前調(diào)用;


    2、didSet:觀察者在修改之后調(diào)用;


    屬性觀察者的語(yǔ)法如下:


    面向?qū)ο箢愋?類型名 {

            var 存儲(chǔ)屬性 : 屬性數(shù)據(jù)類型 = 初始值 {

                willSet(新值){


}

                didSet(舊值){

                

}


}


}

        示例

        

        class Employee{

            var no:Int = 0

            var name:String {

                willSet(NewNameValue){

                    println("員工name的新值:\(NewNameValue)")

}

                didSet(oldNameValue){

                    println("員工name的舊值:\(oldNameValue)")

}

}

                var job:String?

                 var  salary:Double=0

                 var depet:Department? 

}


        struct Department {

                var no : Int = 10 {

                    willSet{

                    println("部門編號(hào)新值:\(newValue))")

}

}

                    didSet{

                       println("部門編號(hào)舊值\(oldValue)")

}


}


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI