gpt4 book ai didi

iphone - 在 ARC 模式下初始化变量

转载 作者:行者123 更新时间:2023-12-03 16:54:50 25 4
gpt4 key购买 nike

我已经开始将我的项目转换为在 ARC 下工作,我想知道以下内容会如何表现。

据我了解,在手动内存管理规则下,以下行会导致内存泄漏。

self.array = [[NSArray alloc] init];

并且建议使用自动释放对象,例如,

  self.array = [NSArray array] or
array = [[NSArray alloc] init];
  1. 因此,ARC模式是否也会导致下面一行的内存泄漏?

    self.array = [[NSArray alloc] init];

  2. 当我们如下直接分配给数组(?)而不使用生成的setter时,这会导致数组过早释放吗?

    array = [[NSArray alloc] init];

请将数组视为实例变量。

最佳答案

1) 不,没有泄漏。
2)不,应该也可以

这两种方式对于 ARC 都是安全的。无论如何,您应该尽可能使用属性。您需要注意的唯一情况如下:

如果你的属性很弱并且你分配了一个新创建的对象,例如 self.array = [[NSArray alloc] init] ,它将在下一行中消失。这在 ARC 中有点奇怪。但如果你的属性很强,你根本不需要关心内存的东西。

关于iphone - 在 ARC 模式下初始化变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13237225/

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