NSString утечка памяти? - PullRequest
       5

NSString утечка памяти?

0 голосов
/ 08 августа 2010

Я оборачиваюсь с помощью следующего кода, дающего мне утечку памяти в объекте фото, явно похожем на объект imageName.

for (int i = 0;i<[potatoesIndexesArray count];i++){ 

    int imageNumber = [[potatoesIndexesArray objectAtIndex:i]intValue];

    NSString *imageName = [[NSString alloc] initWithFormat:@"texture%d",imageNumber];

    UIImage *image = [[UIImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:imageName ofType:@"png"]];
    //UIImage *imageHighlighted = [[UIImage alloc]initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:imageName ofType:@"png"]];

    NSArray *pics = [[NSArray alloc] initWithObjects:
                     [self maskImage:image withMask:[mainDelegate.masksArray objectAtIndex:i]],
                     [self maskImage:image withMask:[mainDelegate.masksArray objectAtIndex:i]],
                     imageName, 
                      nil]; // pics becomes owner of objects

    [textures addObject:[pics retain]]; //textures becomes owner of pics. as a release occurs later. we must retaint pics to keep it available in textures.

    [imageName release];
    [image release];
    [pics release];

    //[imageHighlighted release];

}

Я прочитал документацию по управлению памятью от Apple, но я не могу найти, что я там не так сделал ... Есть идеи ??

Приветствия

Тиби.

1 Ответ

1 голос
/ 08 августа 2010

Если textures является NSMutableArray, то ваш вызов [textures addObject:] уже отправляет сохранение на фотографии.Итак, код должен быть:

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