gpt4 book ai didi

iphone - 在 for 循环中使用 NSString 时内存泄漏

转载 作者:搜寻专家 更新时间:2023-10-30 20:06:45 24 4
gpt4 key购买 nike

我的资源包中有 100 张图像,名称类似于 image1.jpg、image2.jpg。基本上我想做的是在 for 循环中动态创建这些图像的路径名。
在模拟器中测试时,图像加载正常,应用程序没有崩溃。但是在使用仪器测试应用程序时,我震惊地发现在创建 path1 对象时发生了严重的内存泄漏。

     I am pasting  the entire method here for reference

- (id)init {
self = [super init];
if (self) {

self.arrayImages = [[[NSMutableArray alloc] init] autorelease];

for(int i=1 ; i<100 ; i++){

NSString *str = [NSString stringWithFormat:@"Century%d",i];
NSString *path1 = [[NSBundle mainBundle] pathForResource:str ofType:@"jpg"];
[self.arrayImages addObject:path1];
}
}
return self;

因为我没有在循环内使用任何分配,所以我没有任何所有权,因此无权释放该对象。此内存泄漏的原因是什么?

请解释问题并提供必要的解决方案以解决问题..

一如既往,非常感谢任何帮助..

最佳答案

arrayImages 正在保留 path1,因此如果您不释放 arrayImages,它将泄漏。您是如何创建 arrayImages 的,您是否在任何地方发布它?

根据评论编辑:

确保在 -dealloc 方法中释放 arrayImages,如下所示:[arrayImages release];(注意缺少 self )。

关于iphone - 在 for 循环中使用 NSString 时内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9033718/

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