如何释放UIImageJPEGRepresentation或UIImagePNGRepresentation生成的数据?
我有这样的问题:
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSData *data;
NSString *file1 = [[NSBundle mainBundle] pathForResource:
[NSStringstringWithFormat:@"originimg_%d.jpg",i] ofType:nil]] ;
UIImage *image1 = [[UIImage alloc]initWithContentsOfFile:file1];
data = UIImageJPEGRepresentation(image, 0.7);
// do sth with data ...
[image1 release];
image1 = nil;
[pool drain];
pool = nil;
if(data)
NSLog(@"still exist");
我检查了数据是否仍然存在于内存中(我预计它会在我耗尽自动释放池后删除)但它仍然存在:(。你知道如何删除这些数据吗?
没有找到相关结果
已邀请:
2 个回复
锑寝粒
和功能组合2个图像
这是我的方式,但当我运行仪器(分配)它需要303.4 MB :(。你能建议我一个更好的方法吗?
镰茧钩
。 你应该在发送
之前释放
,因为你已经分配了它。
对象是自动释放的,这意味着它在
中被释放。但是,释放对象并不会将对象的所有指针神奇地设置为nil,因此
指向一个解除分配的对象。只是为了踢,尝试以下而不是最后一行:
您的应用程序应该在此行崩溃,因为您无法向解除分配的对象发送消息。