Objective c UIImagePNGRE演示文稿内存泄漏
我在代码中使用了以下行Objective c UIImagePNGRE演示文稿内存泄漏,objective-c,ios,uiimagepngrepresentation,Objective C,Ios,Uiimagepngrepresentation,我在代码中使用了以下行 NSData *dataForImage=UIImagePNGRepresentation(image); 我的应用程序因内存不足而崩溃。当我使用VM跟踪器/分配时,它显示了堆的增长。我分析了代码。它显示我在上面的线泄漏为100%。UIImagePNGRepresentation方法占用更多内存分配吗?据我所知,它返回一个自动释放的对象 如果我做错了什么,请告诉我 编辑: 在泄漏仪器中未显示泄漏。我使用了分配工具,然后针对特定功能使用了heapshot。它向我展示了
NSData *dataForImage=UIImagePNGRepresentation(image);
我的应用程序因内存不足而崩溃。当我使用VM跟踪器/分配时,它显示了堆的增长。我分析了代码。它显示我在上面的线泄漏为100%。UIImagePNGRepresentation
方法占用更多内存分配吗?据我所知,它返回一个自动释放的对象
如果我做错了什么,请告诉我
编辑:
在泄漏仪器中未显示泄漏。我使用了分配工具,然后针对特定功能使用了heapshot。它向我展示了堆的增长。我认为这是应用程序在使用更多应用程序后崩溃的原因。在heapshot中,我使用了“扩展细节”,它在上面一行显示了100% 编辑:希望这有帮助
-(IBAction)Save{
MyInfo *myInfo = [[MyInfo alloc]init];
if (theimageView.image != nil) {
UIImage *image=[theimageView.image fixImageOrientation];
[myInfo set_image:image];
NSData *dataForImage=UIImagePNGRepresentation(image);
image=nil;
[myInfo set_imageData:dataForImage];
dataForImage=nil;
}
[tempArray addObject:myInfo];
[myInfo release];
myInfo=nil;
// Here I have added myInfo object in array and released that object
}
在上面的代码中,
fixImageOrientation
是为UIImage编写的一个类别。我猜是导致问题的UIImagePNGRepresentation(image)
方法。你需要把游泳池里的水排干
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSData *dataForImage=UIImagePNGRepresentation(image);
[pool release];
或弧形
@autoreleasepool
{
NSData *dataForImage=UIImagePNGRepresentation(image);
}
它是否真的显示了该行的泄漏(使用泄漏工具),或者只是显示了分配(在分配工具中)?无论哪种方式,您都需要向我们展示使用
dataForImage
的所有代码。它不会在泄漏仪器中显示泄漏。我使用了分配工具,然后针对特定功能使用了heapshot。它向我展示了堆的增长。我认为这是应用程序在使用更多应用程序后崩溃的原因。在heapshot中,我使用了“扩展详细信息”,它显示了我100%的在线信息。您仍然需要编辑您的问题,以包括使用dataForImage
的所有代码。没有抢注。。。我没有使用ARC…我的应用程序从相机拍摄照片,在保存我在上面调用的保存方法时,您说您将myInfo
添加到数组中,然后释放myInfo
。您需要向我们显示该代码,并且您需要向我们显示从数组中删除MyInfo
对象的代码。