注册 登录
主题 : swift懒加载问题,新手求指教
级别: 新手上路
UID: 562472
精华: 0
发帖: 32
可可豆: 95 CB
威望: 95 点
在线时间: 157(时)
注册时间: 2016-05-11
最后登录: 2018-06-06
0 楼:  发表于: 2018-04-20 15:17    发自: Web Page

swift懒加载问题,新手求指教   

oc :
- (NSMutableArray *)arr
{
    if (_ arr == nil) {
        _ arr = [[NSMutableArray alloc]init];
    }
    return _ arr;
}
swift:
lazy var arr: Array<Any> = {
        var arr = Array<Any>()
        return arr
    }()
那当slef.arr = nil后,其他地方还要用就会崩溃,swift里要咋整?新手求指教
级别: 骑士
状态: 连续签到 - [2天]
UID: 455440
精华: 0
发帖: 296
可可豆: 1075 CB
威望: 1042 点
在线时间: 262(时)
注册时间: 2015-03-29
最后登录: 2018-08-17
1 楼:  发表于: 2018-04-23 15:48    发自: Web Page
这种方式创建的对象不能置nil
==========================这是我的github:=============  https://github.com/manofit  =========,没事做时候喜欢整一些东西,欢迎大家光临。================================
级别: 新手上路
状态: 连续签到 - [9天]
UID: 122739
精华: 0
发帖: 44
可可豆: 181 CB
威望: 142 点
在线时间: 168(时)
注册时间: 2012-02-09
最后登录: 2018-06-07
2 楼:  发表于: 2018-05-07 11:13    发自: Web Page
当然不能设置为nil了  

非要这样可以这么写

    var _valueA : Array?
    
    var valueA : Array {
        get {
            if _valueA == nil {
                _valueA = Array()
            }
            return _valueA!
        }
        set {
            _valueA = newValue
        }
    }
级别: 新手上路
状态: 连续签到 - [1天]
UID: 608808
精华: 0
发帖: 62
可可豆: 78 CB
威望: 73 点
在线时间: 153(时)
注册时间: 2017-03-18
最后登录: 2018-08-18
3 楼:  发表于: 2018-05-17 14:18    发自: Web Page
swift写成这样也是没谁了
级别: 新手上路
UID: 562472
精华: 0
发帖: 32
可可豆: 95 CB
威望: 95 点
在线时间: 157(时)
注册时间: 2016-05-11
最后登录: 2018-06-06
4 楼:  发表于: 2018-06-05 11:40    发自: Web Page
回 2楼(qq139391025) 的帖子
有道理啊
级别: 新手上路
UID: 562472
精华: 0
发帖: 32
可可豆: 95 CB
威望: 95 点
在线时间: 157(时)
注册时间: 2016-05-11
最后登录: 2018-06-06
5 楼:  发表于: 2018-06-05 11:40    发自: Web Page
回 3楼(God_Love) 的帖子
是说我吗?
级别: 版主

状态: 连续签到 - [570天]
UID: 533249
精华: 0
发帖: 789
可可豆: 3679 CB
威望: 2469 点
在线时间: 551(时)
注册时间: 2015-12-22
最后登录: 2018-08-17
6 楼:  发表于: 2018-06-06 09:16    发自: Web Page
回 2楼(qq139391025) 的帖子
2楼的解决方法是正解 可以参考
https://github.com/YTiOSer
https://www.jianshu.com/u/562ebc94345f
描述
快速回复

关注本帖(如果有新回复会站内信通知您)

发帖、回帖都会得到可观的积分奖励。查看论坛积分规则

按"Ctrl+Enter"直接提交
    顶部