14.懶加載和getter,setter

  • 1.懶加載的介紹

    • swift中也有懶加載的方式
      (蘋果的設(shè)計(jì)思想:希望所有的對(duì)象在使用時(shí)才真正加載到內(nèi)存中)
    • 和OC不同的是swift有專門的關(guān)鍵字來實(shí)現(xiàn)懶加載
    • lazy關(guān)鍵字可以用于定義某一個(gè)屬性懶加載
  • 2.懶加載的使用

    • 格式
      lazy var 變量: 類型 = { 創(chuàng)建變量代碼 }()

    • 懶加載的使用

    • 懶加載的本質(zhì)是,在第一次使用的時(shí)候執(zhí)行閉包,將閉包的返回值賦值給屬性

    • lazy的作用是只會(huì)賦值一次

       lazy var datalist:[String] = {
             ()->[String]
             in
      
             print("搞他")
             return ["1","2","3"]  
       }()
      
  • 3.getter與setter

      import UIKit
    
      class Person: NSObject {
    
      // 在企業(yè)開發(fā)中不建議這樣寫
      var _name : String?
      var name : String?{
    
      get{
      
       return _name
      
      }
      // 只要外界給通過對(duì)象,name給name賦值,那么就會(huì)保存在newValue
      set{
      
          _name = newValue
      
        }
    
      }
    
      //  只讀的 ?可以不要
      var gender : String?{
      // 設(shè)置完值之后調(diào)用
      // Swift中使用didSet來替代OC中重寫setter方法
      didSet{
          
          print(gender!)
        }
      
     }
     // 如果只重寫了get方法,那么這個(gè)屬性我們稱之為 計(jì)算型 屬性
     // 也就是對(duì)應(yīng)OC中的只讀屬性
     // 注意點(diǎn):計(jì)算型屬性是不占用內(nèi)存空間的
     var age : Int{
    
      get{
      
             return 30
      
        }
    
      }  
    }
    

調(diào)用

   import UIKit

   class ViewController: UIViewController {

   override func viewDidLoad() {
        super.viewDidLoad()
   
    // 在swift中,如果想使用某一個(gè)類,是不用導(dǎo)入頭文件的
    // 因?yàn)镾wift 中新增了一個(gè)OC中以前沒有的概念 “命名空間”
    // 只要是在一個(gè)命名空間下的資源都是共享的
    // 默認(rèn)情況下,項(xiàng)目名稱就是命名空間
    
    // 正式因?yàn)檫@樣,所以在做swift開發(fā)中有很多的坑
    // 如果是swift項(xiàng)目要使用第三方框架,那么建議使用cocopods來集成框架
    // 因?yàn)槿绻峭ㄟ^cocopods集成的框架,在另外一個(gè)項(xiàng)目中,那么命名空間就不一樣
    // 這樣可以有效地避免三方中的類 和 我們自己的沖突
    let person = Person()
    
    person.gender = "jk"
    
    print(person.age)
    
    
    
    }

  }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容