我的第一篇文章是在这里寻找我的应用程序崩溃的原因。经过将近 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 小时后检测,我可以重现错误。如果我删除该行并完全按照我所做的来重现错误,则该应用程序运行正常并且根本没有崩溃。
任何想法为什么那条线是我的应用程序崩溃的原因