Swift延时属性

原创 Laughing  2017-07-07 23:36  阅读 549 次 评论 0 条

什么是延时属性

通俗的讲,延时属性就是一个属性在初始化的时候不会进行初始化,只有在该属性被真正调用的时候才会初始化的属性。延时属性对于某些需要耗费时间比较长的属性初始化有极其重要的意义。

  1. //: Playground - noun: a place where people can play  
  2.   
  3. import UIKit  
  4.   
  5. class Work{  
  6.     var name:String  
  7.     init(name:String) {  
  8.         self.name=name  
  9.         print(name)  
  10.     }  
  11. }  
  12.   
  13. class People{  
  14.     var age:Int;  
  15.     lazy var work:Work = Work(name: "教师")  
  16.     init(age:Int) {  
  17.         self.age=age  
  18.     }  
  19. }  
  20.   
  21. let person = People(age: 50)//print(name)不会调用  
  22. person.work.name//print(name)此时会被调用  
延时属性不是线程安全的,如果在多个线程中调用延时属性,延时属性可能会初始化多次
本文地址:https://www.lisen.me/376.html
版权声明:本文为原创文章,版权归 木子网 所有,欢迎分享本文,转载请保留出处!

发表评论


表情