gpt4 book ai didi

iphone - 如何释放由 arrayWithContentsOfURL 加载的 NSArray 的元素?

转载 作者:行者123 更新时间:2023-12-03 20:47:54 26 4
gpt4 key购买 nike

我太笨了,不知道这个问题的答案 - 有人确切知道答案吗?

NSMutableArray *happyDictionaryEntries;
@property (nonatomic, retain) NSMutableArray *happyDictionaryEntries;

-(void) getStuffFromServer
{
..
self.happyDictionaryEntries = [NSMutableArray
arrayWithContentsOfURL:[NSURL URLWithString:aUrl]];
}

稍后我们将释放该数组。我想真正释放数组的所有元素。

所以,我们会[happyDictionaryEntries 发布]。

(或者我想 self.happyDictionaryEntries = nil 因为它是一个属性。)

但是你还必须[happyDictionaryEntries removeAllObjects]吗?

和/或您是否必须手动释放数组中的每个项目?

(确实 - 相关问题 - 有谁知道removeAllObjects实际上是否释放了每个对象?目前还不清楚情况是什么。)有一个习语吗?

在您“自己”构建的典型数组中,我可以毫无问题地管理内存,但我太笨了,无法理解当您混合使用 arrayWithContentsOfURL 时会发生什么情况。如果有人明确知道答案,谢谢!

“NSArray 和 NSMutableArray 的文档说明了内存管理行为 - Joshua”

正确。您有关于removeAllObjects 或arrayWithContentsOfURL 的任何文档吗?任何人都可以明确说明removeAllObjects 的作用吗?谢谢。

“来自 Apple 的内存管理编程指南:[众所周知的 doco]”-jlehr。

正确,但是removeAllObjects 是做什么的?有谁知道吗?

请注意没有相关文档。 NSMutableDisctionary removeAllObjects 的文档例如是显式的。但 NSMutableArray removeAllObjects 上的文档明显什么也没说。它可能就像(举一个例子)imageNamed 一样,它基本上不起作用,而且也不像人们所期望的那样起作用。

最佳答案

是的,NSArray、NSSet 和 NSDictionary 类都保留其中保存的对象。当 NSArray、NSSet 或 NSDictionary 对象的保留计数达到零时,保留的对象将作为dealloc的一部分全部释放。 removeAllObjects 还将释放所有持有的对象。

关于iphone - 如何释放由 arrayWithContentsOfURL 加载的 NSArray 的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3962855/

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