если UIImage
является autorelease объект, поэтому, когда я анализирую это жалуются, что на 2-й линии ниже есть потенциал утечки сохраняется в image
:IOS управления памятью UIImage
NSData *data = [[NSData alloc] initWithContentsOfURL: ImageURL];
UIImage *image = [[UIImage alloc] initWithData: data];
[data release];
// Do we want to round the corners?
image = [self roundCorners: image];
// Is it PNG or JPG/JPEG?
// Running the image representation function writes the data from the image to a file
if([ImageURLString rangeOfString: @".png" options: NSCaseInsensitiveSearch].location != NSNotFound)
{
[UIImagePNGRepresentation(image) writeToFile: uniquePath atomically: YES];
}
else if(
[ImageURLString rangeOfString: @".jpg" options: NSCaseInsensitiveSearch].location != NSNotFound ||
[ImageURLString rangeOfString: @".jpeg" options: NSCaseInsensitiveSearch].location != NSNotFound
)
{
[UIImageJPEGRepresentation(image, 100) writeToFile: uniquePath atomically: YES];
}
'- (UIImage *) roundCorners: (UIImage *)' лучше вернуть также автореализованный объект. – smparkes
Так оно и было. Когда я это делаю, приложение вылетает с первого раза, когда приложение загружается только на телефон. Это не сбой в симуляторе. Затем все остальные приложения загружаются с xcode после первого прекрасного. Несмотря на это, это привело к тому, что приложение не удалось отправить в хранилище приложений. – Jesse
Если я возьму autorelease, приложение будет работать так, как должно, устанавливается в первый раз и работает повсюду. Но я беспокоюсь о потенциальной утечке. Когда у меня было настроено autorelease, мне пришлось разрешить зомби выяснить, почему приложение терпит крах, и он заявил: [UIImage release]: сообщение отправлено на освобожденный экземпляр – Jesse