我的资源包中有100个名为image1.jpg、image2.jpg的图像。
基本上,我要做的是在for循环中动态创建这些图像的路径名。
在模拟器中测试时,图像加载得很好,应用程序没有崩溃。但是在用仪器测试应用程序时,我震惊地看到在创建PAT1对象时发生的内存泄漏严重。
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
,并在任何地方发布它的?
根据评论编辑:
确保您在arrayImages
方法中释放-dealloc
,就像这样:[arrayImages release];
(注意缺少self
)。