iPhone:图像使用的内存未被释放

时间:2010-11-05 12:16:21

标签: iphone memory uiimageview memory-management

我在下面的代码中加载了来自网络的图片。 单击表格单元格后会显示这些图像,每次单击表格单元格时都会重新加载这些图像。 关键是用“仪器”分析内存分配,当我从详细视图返回到表时,图像占用的内存不会被释放。

有人有任何建议吗? 当然,我做了案件的所有释放......但似乎没有帮助。

    NSError *error = nil;
    UIImage *img = nil;
    NSString *myurl = [IMG_SERVER_URL stringByAppendingString: tmp_link.url];
    [UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
    NSData *imageData = nil;
    if(myurl!=nil){
        imageData = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:myurl] options:nil error:&error];
        if (error == 0) {
            img = [[UIImage alloc] initWithData:imageData];
        }
    }
    [imageData release]; imageData = nil;
    UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(targetWidth*i, 0, targetWidth, targetHeight)]; 
    imageView.image = img; 
    imageView.contentMode = UIViewContentModeScaleAspectFit;
    [img release];
    [....some code....]
    [imageView release];

1 个答案:

答案 0 :(得分:2)

我认为“imageView.image = img”会增加图像对象的引用次数。如果我是对的,只要你不释放imageView,分配的内存就不会被释放。