gpt4 book ai didi

objective-c - 如果我多次调用 nsobject init 会发生什么?它会增加保留计数吗?

转载 作者:太空狗 更新时间:2023-10-30 03:59:04 24 4
gpt4 key购买 nike

我是 Objective-C 的新手,我在内存管理方面遇到了很多麻烦,但我仍然了解一点。如果我有一个对象,例如 NSArray * myArray,我会这样做

myArray = [[NSArray alloc] initWithObjects:obj1,obj2,obj3,nil];

然后我正在做一些事情,我希望 myArray 包含新对象,然后我再次初始化它

[myArray initWithObjects:obj4,obj5,obj6, nil];

它似乎满足了我的需要,但从内存管理的角度来看它是否正确?它会增加保留计数吗?那我应该释放它两次吗?

最佳答案

不要那样做!

一般来说,如果你想重置一个已经存在的 Objective C 对象中的对象或东西,创建并使用某种 Setter 方法。

对于您的数组,再次不要这样做!您引用的“initWithObjects”方法可以方便地初始化一个不可变(不可更改的)数组,其中包含数组将在其整个生命周期内填充的项目。

对于您正在尝试做的事情,只需使用 NSMutableArray。下面列出了它的文档:

http://developer.apple.com/library/ios/#documentation/Cocoa/Reference/Foundation/Classes/NSMutableArray_Class/Reference/Reference.html

关于objective-c - 如果我多次调用 nsobject init 会发生什么?它会增加保留计数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8036569/

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