gpt4 book ai didi

ios - 如果我正在执行 CGImageRelease(sourceImageRef), Objective-C ,应用程序崩溃

转载 作者:行者123 更新时间:2023-11-28 22:38:44 26 4
gpt4 key购买 nike

我的第一篇文章在 here寻找我的应用程序崩溃的原因。经过将近 3 小时的检测,现在我可以找出泄漏的位置。

首先,我正在做的是在使用 AFNetworking 下载图像后,我将根据下载图像的大小设置 uiimageview 的大小。

[self.headerView setImageWithURLRequest:[NSMutableURLRequest requestWithURL:[NSURL URLWithString:fundraiserInfo.imageUrl]]
placeholderImage:nil
success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image) {

// Use following to set the size of image according to retina or non retina
CGImageRef sourceImageRef = [image CGImage];
UIImage *newImage = [UIImage imageWithCGImage:sourceImageRef scale:[image scale] orientation:[image imageOrientation]];
CGImageRelease(sourceImageRef); // <------ this is I am getting crash
weakObj.image = newImage;
}
failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error) {
;
}
];

我收到如下警告

Incorrect decrement of the reference count of an object that is not owned at this point by the caller

如何检测泄漏:

输入该行并运行该应用程序,该应用程序在多次尝试后崩溃了。通过 2 小时后检测,我可以重现错误。如果我删除该行并完全按照我的操作来重现错误,则该应用程序会正常运行并且根本不会崩溃。

任何想法为什么那行是导致我的应用程序崩溃的原因

最佳答案

您仅使用 CGImageRef sourceImageRef = [image CGImage]; 引用 sourceImageRef。此外,您不是在创建、保留它,因此释放它不是您的责任。

我希望你看看帖子 Releasing CGImageRef

另见 Link 1Link 2

关于ios - 如果我正在执行 CGImageRelease(sourceImageRef), Objective-C ,应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15171627/

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