Cocos2D - NSMutableArray из CCSprites - PullRequest
1 голос
/ 04 июня 2010

Я пытался сохранить некоторые CCSprites в NSMutableArray, но игра сразу вылетала, я предполагаю, что это проблема с памятью, и я также предполагаю, что CCSprites являются объектами автоматического выпуска?

Итак, как мне хранить несколько CCSprites в NSMutableArray?

Цель, которую я хочу сделать, - это сохранить, например, всех врагов в массиве, а затем перебрать их в моей функции временного шага и обновить их позиции и еще много чего.

Что я пытался сделать:

NSMutableArray *enemies = [NSMutableArray array];
[enemies addObject: [CCSprite spriteWithFile: @"hello.png"]];

Сбой при попытке доступа к спрайту с помощью -objectAtIndex:

1 Ответ

5 голосов
/ 04 июня 2010

Массив автоматически освобожден. Если вы попытаетесь получить к нему доступ позже в другом контексте, он, вероятно, уже умер. Таким образом, вы либо сохраняете его, либо не используете метод вспомогательного массива, но явно [[NSMutableArray alloc] init].

Или сохраните его в сохраненном свойстве (обязательно используйте метод установки в этом случае, т.е. self.ivar = enemies;

Каким бы путем вы ни пошли, будьте осторожны, чтобы не «чрезмерно сохранить» ваш массив, т. Е. Использовать alloc / init и сохраняющий установщик, иначе ваш массив никогда не будет освобожден снова (более правильно, что он будет освобожден только при «багги» «двойной релиз».

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