gpt4 book ai didi

objective-c - 为什么 Instruments 将此报告为内存泄漏?

转载 作者:行者123 更新时间:2023-12-03 16:52:05 28 4
gpt4 key购买 nike

我有一些如下所示的代码:

NSMutableArray *bar = [[NSMutableArray alloc] initWithCapacity:0];
NSMutableDictionary *foo = [[NSMutableDictionary alloc] initWithCapacity:0];
[foo setObject:[NSNull null] forKey:@"yay"];
[bar addObject:foo];

[foo release];

仪器显示 foo 正在泄漏。我明白为什么会发生这种情况。当 alloc'd 时 Foo 的保留计数为 1。然后当 bar addObject 的 foo 时,保留计数变为 2。后来当我释放 foo 时,它又回到 1。仍然是泄漏。但是,稍后在我的代码中(在一个单独的方法中,这就是为什么我认为这可能会显示为泄漏)

[bar removeAllObjects];

如果我稍后执行removeAllObjects,为什么 foo 显示为泄漏?

** 注意 **

我没有将其包含在我原来的帖子中,但 bar 确实在类 dealloc 方法中被释放。

最佳答案

我认为(我认为你也暗示了这种可能性)Instruments 将其标记为潜在泄漏,因为它没有足够远地展望 future ,无法看到酒吧将对此负责用于在所述单独方法中删除/释放其所有对象..

关于objective-c - 为什么 Instruments 将此报告为内存泄漏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/726944/

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