gpt4 book ai didi

objective-c - NSMutableArray 被释放了吗?

转载 作者:行者123 更新时间:2023-12-03 16:53:02 24 4
gpt4 key购买 nike

我有一个 NSMutableArray,其属性为(nonatomic,retain),并且由于某种原因被释放,这是我分配它时的代码(tableData 是 NSMutableArray):

tableData = [[[NSMutableArray alloc] init] autorelease];

当我分配它时,它的保留计数是1。当我将它分配给tableData时,它的保留计数是2。然后使用自动释放,在运行循环结束时它应该变为1(这就是我想要的)。但这并没有发生。后来,当我引用它并运行一个方法时,我得到随机对象(上次是 UITabBarSwappableImageView)并且它说发送了无法识别的选择器。这是有道理的...该对象正在被释放,而其他对象正在取代它...但是为什么它被释放呢?谢谢。

最佳答案

它正在被释放,因为将其分配给tableData不会改变保留计数

您只需将指针值从内存中的一个槽复制到另一个槽即可。就是这样。不会发送任何消息来指示所有权变更。

您需要实际调用 setter 方法:

[self setTableData:[NSMutableArray array]];

或者如果您更喜欢点语法:

self.tableData = [NSMutableArray array];

关于objective-c - NSMutableArray 被释放了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6004864/

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