Рассмотрим этот псевдокод:
// an image is initialized
UIImage *imagePX = [[UIImage alloc]initWithContentsOfFile:... bla bla
imagePX = [self rotateImage:imagePX]; //A
[self doStuff:imagePX]; //B
Тогда у меня есть метод rotateImage:
- (UIImage*) rotateImage:(UIImage*)source {
... rotate the image... draw on context...
[source drawInRect... bla bla
...
UIImage *rotatedImage = UIGraphicsGetImageFromCurrentImageContext();
return rotatedImage;
}
Мой вопрос: imagePX никогда не был выпущен. Поскольку изображение передается методу RotateImage, я подумал, что мог бы просто выпустить его после использования его по команде [source drawInRect ...], как если бы я возвращал rotatedImage для метода, но если я это сделаю, программа произойдет сбой, поскольку переменная imagePX должна существовать, чтобы можно было оценить строку A.
Другая проблема в том, что изображение B будет перенаправлено в другую процедуру. Итак, каков наилучший способ заставить его работать, не теряя отслеживания imagePX и не просачиваясь?
Какой лучший подход?