gpt4 book ai didi

objective-c - UIImagePNGRepresentation 内存泄漏

转载 作者:行者123 更新时间:2023-11-29 11:10:22 33 4
gpt4 key购买 nike

我在我的代码中使用了下面一行

  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写的category。

最佳答案

我猜是 UIImagePNGRepresentation(image) 方法导致了问题。你需要排干水池。

NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

NSData *dataForImage=UIImagePNGRepresentation(image);

[pool release];

或在 ARC 中

@autoreleasepool
{
NSData *dataForImage=UIImagePNGRepresentation(image);
}

关于objective-c - UIImagePNGRepresentation 内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11859051/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com