gpt4 book ai didi

objective-c - 在 Objective C 惰性实例化中,我们为什么不接触 setter?

转载 作者:搜寻专家 更新时间:2023-10-30 19:57:48 25 4
gpt4 key购买 nike

在 Objective-C 中,以惰性方式实例化内部类数组(等)的常见做法。

因此,如果您调用 getter,它首先会检查数组是否不为 nil,并在需要时为其分配内存。

但是二传手呢?如果您尝试将一些值插入数组单元格之一,因为我们还没有为它分配内存 - 它会去哪里?

很明显,我在这里遗漏了一些东西。很高兴得到澄清。

最佳答案

我不确定我是否理解您的问题,但是如果您这样做:

@property (nonatomic, strong) NSMutableArray* myArray;
...

- (NSMutableArray *) myArray {
if(!_myArray) {
NSLog(@"created");
_myArray = [[NSMutableArray alloc] init];
}

return _myArray;
}

...
[self.myArray addObject:@"test"];

当您调用 addObject: 时,实际上会调用 getter,因此您会看到记录了“created”。

关于objective-c - 在 Objective C 惰性实例化中,我们为什么不接触 setter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19108219/

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