освобождение NSArray против выпуска NSArray - PullRequest
0 голосов
/ 04 января 2011

Я в замешательстве. Я использую кадры анимации, чтобы заставить объекты двигаться. Вот код:

campFireView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 80, 63)];


campFireView.animationImages = [NSArray arrayWithObjects:   
                                [UIImage imageNamed:@"campFire01.png"],
                                [UIImage imageNamed:@"campFire02.png"],
                                [UIImage imageNamed:@"campFire03.png"],
                                [UIImage imageNamed:@"campFire04.png"],
                                [UIImage imageNamed:@"campFire05.png"],
                                [UIImage imageNamed:@"campFire06.png"],
                                [UIImage imageNamed:@"campFire07.png"],
                                [UIImage imageNamed:@"campFire08.png"],
                                [UIImage imageNamed:@"campFire09.png"],
                                [UIImage imageNamed:@"campFire10.png"],
                                [UIImage imageNamed:@"campFire11.png"],
                                [UIImage imageNamed:@"campFire12.png"],
                                [UIImage imageNamed:@"campFire13.png"],
                                [UIImage imageNamed:@"campFire14.png"],
                                [UIImage imageNamed:@"campFire15.png"],
                                [UIImage imageNamed:@"campFire16.png"],
                                [UIImage imageNamed:@"campFire17.png"], nil];


campFireView.animationDuration =2.5;

campFireView.animationRepeatCount = 0;


[campFireView startAnimating];

[bgview addSubview:campFireView];

[campFireView release]; 

Скажите, пожалуйста, как release такого рода NSArray? Я не использовал alloc в коде, так как release этот массив, так как он вызывает большую утечку в моем коде.

Ответы [ 4 ]

3 голосов
/ 04 января 2011

как release такого рода NSArray?

Вы не.Ваша утечка, скорее всего, вызвана в другом месте вашего кода, потому что то, что я вижу здесь, не должно быть утечкой само по себе.

1 голос
/ 04 января 2011

Вам не нужно выпускать NSArray. Вы используете это с NSArray arrayWithObjects. Это означает, что вы не являетесь владельцем объекта, поэтому вам не нужно его выпускать.

1 голос
/ 04 января 2011

Этот NSArray автоматически выпущен. Если вы действительно протекаете, это откуда-то еще.

0 голосов
/ 04 января 2011

Нет утечки с массивом, arrayWithObjects: дает объект автоматического выпуска.

я думаю, что вы также выпускаете campFireView в dealloc. вам нужно сделать свойство retain сохранения для campFireView и освободить его в существующей ссылке dealloc.

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