我在下面的代码中加载了来自网络的图片。 单击表格单元格后会显示这些图像,每次单击表格单元格时都会重新加载这些图像。 关键是用“仪器”分析内存分配,当我从详细视图返回到表时,图像占用的内存不会被释放。
有人有任何建议吗? 当然,我做了案件的所有释放......但似乎没有帮助。
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];
答案 0 :(得分:2)
我认为“imageView.image = img”会增加图像对象的引用次数。如果我是对的,只要你不释放imageView,分配的内存就不会被释放。