我的资源包中有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)。

10-08 12:01