Как избежать этой утечки памяти при получении UIImageView? - PullRequest
0 голосов
/ 16 декабря 2010

У меня есть вспомогательный метод, который загружает изображения для меня.Я хочу иметь возможность использовать этот код во всем приложении, поэтому я создал это:

+(UIImageView *) getSignature: (NSString *) aPONumber {

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsPath = [paths objectAtIndex:0];
    NSString *newPath =[documentsPath stringByAppendingPathComponent: [NSString stringWithFormat:@"%@-signature.jpg", [aPONumber stringByReplacingOccurrencesOfString:@"/" withString:@""]]];

    BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:newPath];
    if(fileExists)
    {

        return [[UIImageView alloc] initWithImage:[[UIImage alloc] initWithContentsOfFile:newPath]];
    } else {
        return nil;
    }   
}

Будет ли это хорошим местом для использования автоматического выпуска?Как то так:

return [[[UIImageView alloc] initWithImage:[[[UIImage alloc] initWithContentsOfFile:newPath] autorelease]]autorelease];

1 Ответ

1 голос
/ 16 декабря 2010

Краткий ответ: Да.

Вы можете использовать там автоматическое освобождение, и вам больше не нужно беспокоиться о выпуске ваших UIImageViews или UIImages. Просто добавьте их в UIView, и они будут автоматически освобождены, как только они будут удалены из UIView или UIView будет освобожден.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...