美文网首页
swift —— tips swift 中的懒加载实现

swift —— tips swift 中的懒加载实现

作者: Laughingg | 来源:发表于2016-08-19 09:19 被阅读86次

objc

objc 对象的懒加载

// 对象的属性
@property (nonatomic, strong) NSObject *obj;


- (NSObject *)obj {

    // 这样可以保证值 _obj 对象只被创建一次
    //(也有写成  _objc == nil, 不建议这么写是怕手抖少写一个等号)
    if (_obj!) {
        _obj = [[NSObject alloc] init];
    }
    return _obj;
}

swift

swift 的懒加载 方式 1
lazy 保证数据在用到的时候才会被加载。

// 使用 lazy 存储属性,lazy 存储属性会保证初始化代码只被执行一次
/*
// 这是一个闭包
  {
      return UIScrollView()
  }()
*/
lazy var scrollView  =  {
      return UIScrollView()
}()

swift 的懒加载 方式 2
仿 objc 的 属性懒加载的写法。
在 swift 中的 存储属性 + 计算属性 == objc 的 property

private var _scrollView: UIScrollView? = nil

var scrollView: UIScrollView {
    get {
        if _scrollView == nil {
            _scrollView = UIScrollView()
        }
        return _scrollView!
    }
    set {
        _scrollView = newValue
    }
}

**swift 的懒加载 方式 3(伪方式) ** ( 保证数据被加载一次,但是不是用到的时候才加载 )

// 使用 let 也可以保证 只被赋值一次,
let scrollView  = {  return UIScrollView()  }()

懒加载的写法,推荐使用第一种。 对于一些结构性视图的创建和简单设置,可以使用第三种。

相关文章

  • swift —— tips swift 中的懒加载实现

    objc objc 对象的懒加载 swift swift 的懒加载 方式 1lazy 保证数据在用到的时候才会被加...

  • swift 中 Lazy,deinit用法

    * swift中懒加载写法,懒加载在Swift中是一个闭包。 懒加载详细介绍看这里 * OC中的dealloc方法...

  • Swift:)懒加载Lazy

    OC中,要实现懒加载是用到getter方法,例如 Swift懒加载差别就很大了,懒加载属性用lazy修饰,注意结尾...

  • 2019-06-10

    swift中单利的写法 懒加载

  • Swift懒加载Tips

    一、swift懒加载的原理: lazy var 本质上是声明并执行的闭包,或一个有返回值的函数调用,只执行一次,使...

  • Swift中的懒加载

    相信大家对OC中的懒加载都不陌生,但是Swift中的懒加载你又熟悉不熟悉呢?Swift中的懒加载较OC的简单了很多...

  • swift学习09(懒加载)

    swift中是通过专门的关键字(lazy)来实现懒加载; 一、直接懒加载赋值 二、懒加载赋一个函数 三、懒加载赋一...

  • lazy

    swift中是通过专门的关键字(lazy)来实现懒加载; 直接懒加载赋值 懒加载赋一个函数 懒加载赋一个闭包 1、...

  • swift学习之懒加载

    在移动端开发过程之中,懒加载随处可见。在swift中,苹果推荐使用懒加载,如何实现懒加载呢? 关键字: lazy ...

  • swift 懒加载

    swift 懒加载

网友评论

      本文标题:swift —— tips swift 中的懒加载实现

      本文链接:https://www.haomeiwen.com/subject/xlkbsttx.html