[英]Memory leak Using NSData from URL
我通过线程从URL收到图像。 但是NSData中的内存泄漏。 为什么? 我如何解决它? Iphone devie中的泄漏不在模拟器中。 帮我!!
//视图 - 控制
-(void)viewDidLoad
{
[self performSelectorInBackground:@selector(loadImageScreenshot:) withObject:args];
}
//放置图片
-(void) loadImageScreenshot:(NSDictionary *) args
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
UIImage * screenshotImage=[UIImage imageWithStringURL:url];
NSDictionary *args2=[NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithInt:num], @"screenNum",
screenshotImage,@"image",
nil];
[self performSelectorOnMainThread:@selector(assignImageToScreenshotImageView:) withObject:args2 waitUntilDone:YES];
[pool release];
}
//图像添加
- (void) assignImageToScreenshotImageView:(NSDictionary *)arg
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
UIImage * image= [arg objectForKey:@"image"];
UIImageView *imageview=[UIImageView alloc]init];
.
.
imageview.image=image;
[self.mScreenshotSpace addSubview:imageview];
[imageview release];
[pool release];
}
//来自网址的图片
+(UIImage *)imageWithStringURL:(NSString *)strURL
{
NSURL *url =[NSURL URLWithString:strURL];
NSData * data=[[NSData alloc]initWithContentsOfURL:url options:NSDataReadingUncached error:&error];
UIImage * image=[UIImage imageWithData:data ];
[data release];
return image;
}
您怎么知道它在泄漏? 您正在- (void) assignImageToScreenshotImageView:(NSDictionary *)arg
中创建一个- (void) assignImageToScreenshotImageView:(NSDictionary *)arg
释放的自动释放池,这是一个泄漏。 否则,代码看起来很好。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.