gpt4 book ai didi

ios - 延迟初始化/加载所有对象是否可以?

转载 作者:搜寻专家 更新时间:2023-10-30 20:18:59 24 4
gpt4 key购买 nike

我发现自己现在懒惰地初始化我所有的功能。它只是感觉更自然,它让我可以停止编写设置函数。这是设计不好吗?有哪些陷阱?

@property (nonatomic, strong) NSMutableArray *array1;

-(NSMutableArray *)array1{
if (!_array1){
_array1 = [[NSMutableArray alloc] init];
}
return _array1;
}

然后我发现自己在做这样的事情:

-(NSMutableArray *)array1{
if (!_array1){
_array1 = [[NSMutableArray alloc] init];
// read a file
// [_array addObject:newObject];
}
return _array1;
}

最佳答案

既是又不是。延迟实例化作为一个概念很好,但你必须小心。例如,如果两个不同的线程试图同时访问您的任何一个变量,您最终可能会得到两个不同的延迟实例化变量。在这里查看答案:

Thread safe lazy initialization on iOS

关于ios - 延迟初始化/加载所有对象是否可以?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18486125/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com