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

  • 相关阅读:
    四、创建多线程、数据共享
    operator函数操作符
    三、线程传参
    二、线程创建、结束
    一、并发、进程、线程概念
    bagging和boosting的区别
    ID3,C4.5和CART三种决策树的区别
    7创建型模式之建造者模式
    6创建型模式之工厂模式与抽象工厂模式
    5创建型模式之简单工厂模式
  • 原文地址:https://www.cnblogs.com/zeyang/p/4486664.html
Copyright © 2011-2022 走看看