Эта проблема меня смущает уже несколько дней. У меня есть NSString, 'spriteType'. Он объявляется с использованием свойства и метода синтеза. В моем слое, где создается строка, я также создаю CCNode. Узел создается в методе.Переоценка объекта при нажатии кнопки
- (void) spritePick {
CCMenuItemImage *go = [CCMenuItemImage itemFromNormalImage:@"button_go.png" selectedImage:@"button_go_selected.png" target:self selector:@selector(test)];
spritePickMenu = [CCMenu menuWithItems:go, nil];
spritePickMenu.position = ccp(0,0);
spritePick = [CCNode node];
[spritePick addChild:spritePickMenu];
spritePick.position = ccp(240,160);
[self addChild: spritePick];
}
Метод 'тест', который вызывается с помощью кнопки, просто:
- (void) test {
NSLog(@"%@",spriteType);
}
Линия NSLog разбивает мою игру, и выдает ошибку: EXC_BAD_ACCESS
Везде, кроме внутри метода «test» код работает нормально. Почему это должно было дать мне ошибку, когда метод был вызван из узла, но он не дал бы его мне, когда он был вызван из другого места?
При необходимости я могу указать полный код.
проверить поток кода еще раз, иногда мы можем пропустить что-то. По моим предположениям, «spriteType» не инициализирован. Некоторые, где в вашем коде записывают следующую строку, а затем проверяют self.spriteType = @ ""; – ajay
Возможно, вы делаете что-то неправильно с памятью, создавая зомби, который заканчивает сбой приложения. Предоставление полного кода выглядит как хорошая идея. – Lio