内存泄漏问题-NSConcreteData
// to set tip - photo in photo frame
NSData *data=[NSData dataWithContentsOfURL:[NSURL URLWithString:pathOfThumbNail]];
UIImage *cellThumbImg;
if([data length]>0){ cellThumbImg=[UIImage imageWithData:data];} else { cellThumbImg=[UIImage imageNamed:@"130X90.gif"]; }
UIImageView *imgView=[[UIImageView alloc]initWithImage:cellThumbImg]; imgView.frame=photoFrame;
(cellThumbImg.size.height>=58 || cellThumbImg.size.width>=58 ) ? [imgView setContentMode:UIViewContentModeScaleToFill] : [imgView setContentMode:UIViewContentModeCenter] ;
[cell.contentView addSubview:imgView];
[imgView release];
我的问题与这个问题非常相似,
iPhone - 内存泄漏 - NSData dataWithContentsOfUrl 和 UIWebView
甚至,我已将以下代码添加到我的应用程序已完成启动中,如下所示。
以下代码用于将共享缓存内存设置为零容量。它几乎可以消除我的应用程序中的 NSConcreteData 泄漏。然而内存泄漏。
- (void)applicationDidFinishLaunching:(UIApplication *)application {
NSURLCache *sharedCache = [[NSURLCache alloc] initWithMemoryCapacity:0 diskCapacity:0 diskPath:nil];
[NSURLCache setSharedURLCache:sharedCache];
[sharedCache release];
[window makeKeyAndVisible];
}
我无法从堆栈溢出中找到此类问题的任何解决方案。
如果您能回答,我将不胜感激。
提前致谢。
你有三行,让我们把它们分解
1. NSData *imageData = [[NSData alloc] init];
2. imageData = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"www.xyz.abc.com"]];
3. [imageData release];
第 1 行:分配并初始化一个新的 NSData。该 NSData 的引用计数为 +1
第 2 行:从互联网获取数据并将其放入 NSData 中。这会将第 1 行使用的变量设置为新的 NSData(设置为自动释放),隐藏第 1 行分配和初始化的 NSData
第 3 行:将释放第 2 行收到的 NSData。
您可以删除第 1 行和第 3 行,然后将变量声明添加到第 2 行。因为它是自动释放的,所以稍后将由事件循环释放...
NSData *imageData = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"www.xyz.abc.com"]];
我建议你阅读内存管理部分here
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)