iOS-延时加载,延时初始化

  • OC版
  • // classA.h
    @property (nonatomic, copy) NSString *testString;
    
    //classA.m
    - (NSString*)testString {
        if (!_testString) {
            _testString = @"Hello";
            NSLog(@"Print at first time");
        }
        return _testString
    }

     

  • Swift版
  • //在变量属性前加 lazy 指定延时加载
    class ClassA {
        lazy var str: String = {
            let str = "Hello"
            print("print at first time")
            return str
        }()
        
        // or 
        // lazy var str: String = "Hello"
    
    }
    
    // lazy + array.map / filter
    let data = 1...3
    let result = data.lazy.map {
        (i: Int) -> Int in
        print("i is \(i)")
        return i * 2
    }
    
    print("print results")
    
    for i in result {
        print("result is \(i)")
    }
    
    print("end")
    
    /*
    print results
    i is 1
    result is 2
    i is 2
    result is 4
    i is 3
    result is 6
    end
    */

     

转载于:https://www.cnblogs.com/HackHer/p/8459218.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值