zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    [CF1284E]New Year and Castle Construction
    [BZOJ2178]圆的面积并(格林公式)
    [CF1146H]Satanic Panic(dp)
    [CF1019D]Large Triangle
    [ICPC World Finals 2018][LOJ6409]熊猫保护区(voronoi图)
    [CF gym 101471A][LOJ6470]Airport Construction
    [BZOJ2809]dispatching(左偏树)
    [HDU5784]How Many Triangles
    [CF372E]Drawing circles is fun(反演)
    [NOI2005][BZOJ1502][洛谷P4207]月下柠檬树(自适应Simpson积分)
  • 原文地址:https://www.cnblogs.com/zeyang/p/4486664.html
Copyright © 2011-2022 走看看