Swift中懒加载(lazy initialization)的实现

Swift中是存在和OC一样的懒加载机制的,但是这方面国内的资料比较少,今天把搜索引擎换成了Bing后发现用Bing查英文最新资料要比百度强上不少。

我们在OC中一般是这样实现懒加载初始化的:

   1:  @property (nonatomic, strong) NSMutableArray *players;
   2:   
   3:  - (NSMutableArray *)players {
   4:      if (!_players) {
   5:          _players = [[NSMutableArray alloc] init];
   6:      }
   7:      return _players;
   8:  }

而用百度搜“swift 懒加载 lazy”却没有像样的资料,都在照本宣科。

实际上我们可以这样写:

   1:  lazy var players: NSMutableArray = {
   2:          var temporaryPlayers = NSMutableArray()
   3:          temporaryPlayers.addObject("Mike Buss")
   4:          return temporaryPlayers
   5:          }()

完美解决问题!感谢Bing!

Lazy Initialization with Swift

http://www.tuicool.com/articles/I3mY7v

http://stackoverflow.com/questions/24068829/lazy-loading-properties-in-swift

原文地址:https://www.cnblogs.com/zeyang/p/4486664.html