gpt4 book ai didi

objective-c - 设置数组的差异

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

在我的应用程序中,我需要不断更改一个 NSMutableArray 的内容。我用的是这个方法

myArray = [NSArray arrayWithObjects:object1,object2,object3,nil];

我做了几次,一切都很顺利,直到我注意到当我退出 View 时应用程序崩溃了。我将 myArray 的内容设置方式更改为:

[myArray setArray:[NSArray arrayWithObjects:object1,object2,object3,nil]];

这足以阻止崩溃并且一切正常。但我只是好奇在使用第一种方法时,内部深处发生了什么,导致应用程序崩溃(顺便问一下,为什么它不会立即崩溃,而是只有当我从堆栈中弹出 View 时才崩溃?)并且在使用时没有任何影响第二个。

最佳答案

在第一种情况下,您将 myArray 设置为指向自动释放的对象。在第二种情况下,您告诉 myArray (可能是此时现有的 NSMutableArray 实例)将其具有的任何内容替换为另一个数组的内容。

您需要阅读内存管理规则。

关于objective-c - 设置数组的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8241095/

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