Я пытаюсь построить несколько сцен в моем одиночном initmanager GameManager.ccscene arc и autorelease
Сцена создается с помощью
- (id)init
{
self = [super init];
if (self) { // 'mainScene' is an autorelease object.
mainScene = [CCScene node];
...
}
GameManger имеет сильную ссылку на mainScene:
@interface GameManager : NSObject
{
CCScene* mainScene;
}
Но если я пытаюсь нажать на сцену позже
[[CCDirector sharedDirector] pushScene:mainScene];
Я получаю EXC_BAD_ACCESS
Если я создаю и немедленно нажимаю, то все работает. Должна ли ссылка по умолчанию __strong сохранять выделенный объект?
Заранее спасибо за любую помощь ....
Ни делает никакой разницы, когда вы используете ARC. [Узел CCScene] и [[CCScene alloc] init] будут работать одинаково с ARC (хотя технические данные низкого уровня показывают несколько разные процедуры управления памятью). Убедитесь, что вы не попадаете в ловушку нажатия текущей сцены, которая будет разбиваться. – LearnCocos2D
Я определенно не нажимал бегущую сцену - и проверял вызов [[[[CCScene alloc] init] autorelease]; сбоев и [[CCScene alloc] init] не ... – OptimisticMonkey