Мой первый пост находится здесь, чтобы посмотреть по той причине, почему мое приложение падает. После почти 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 часа, я могу воспроизвести ошибку. Если я удалю эту строку и буду точно следовать тому, что я делаю, чтобы воспроизвести ошибку, приложение будет работать правильно и вообще не будет падать.
Любая мысль, почему эта строка является причиной сбоя моего приложения
[image CGImage]
, не так ли? Вот почему я выпускаю его после созданияnewImage
. Я могу ошибаться в этом. - person tranvutuan   schedule 02.03.2013