【问题标题】:How manages the memory to use copied array and dictionary?如何管理内存以使用复制的数组和字典?
【发布时间】:2025-12-20 22:50:16
【问题描述】:

我在数组中有可移动数据 (NSMutableArray)...(当数组中的数据删除时,数组使用其他位置。所以,我保留它。)

另外,我使用了复制命令....但我没有找到如何发布它。

NSMutableArray *arrRemovable;

NSMutableDictionary *dicData; (alloc, and init)

[_dicData setObject:[arrRemovable copy] forKey:@"DATA1"];

(已经保留计数 2)

我不想让 arrRemovable 变量.. 我想减去保留计数。

[[_dicData objectForKey:@"DATA1"] 释放] 我正在使用它,但分析工具警告我。

消息是“调用者此时不拥有的对象的引用计数减少错误”

帮帮我!!

【问题讨论】:

    标签: objective-c arrays memory dictionary


    【解决方案1】:

    你可以这样做:

    NSMutableArray *copyOfArrRemovable = [arrRemovable copy]; 
    [_dicData setObject:copyOfArrRemovable forKey:@"Data1"];
    [copyOfArrRemovable release];
    

    这是假设我正确理解了这个问题。如果不是,请解释。

    希望对您有所帮助。

    【讨论】:

    • 你的回答很正常。我也知道。我不想使用 copyOfArrRemovable 变量。有 35 个数组。我不想制作 35 个 NSMutable 变量。我能做什么?