2014-01-11 4 views
1

Я создаю игру с нерешимыми словами.iOS 7 SpriteKit Game - ошибка при загрузке игры: «Попытка добавить нулевой узел к родительскому: <SKNode> имя: '(null)'

Я достиг той стадии, когда я могу сохранить/загрузить игру с помощью:

  • (void)encodeWithCoder:(NSCoder *)aCoder

  • (instancetype)initWithCoder:(NSCoder *)aDecoder

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

Что это значит?

2014-01-11 18: 23: 12,254 Нагрузочный приложение из-за неперехваченное исключением

'Attemped to add nil node', reason: 'Attemped to add nil node to parent: <SKNode> name:'(null)' position:{0, 0} accumulatedFrame:{{inf, inf}, {inf, inf}}'

Я не знаю, где ошибка в моем коде.

Приветствия Luke

+0

это означает, что addChild вызывается с параметром, равным нулю. Добавьте контрольную точку исключения xcode, если ошибка в коде, она покажет вам – LearnCocos2D

ответ

0

Благодаря LearnCocos2D,

Ошибка аркан (на мой взгляд) в его деталях.

Проблема была в том, как я имел дело с границей bodyWithEdgeLoop.

Проблема была также связана с:

(ничтожной) encodeWithCoder: (NSCoder *) aCoder

и

(instancetype) initWithCoder: (NSCoder *) aDecoder

методы.

Я использую игры IOS от Ray Wenderlich по книге «Учебники» & Я ошибся в методе «initWithCoder».

Я удалил &, заменив тело контура кромок в методе «encodeWithCoder», но не создал его в методе «initWithCoder».

Так что это решение. При сохранении игры необходимо, чтобы петля краевого тела была удалена & в методе «encodeWithCoder», но также должна быть создана в методе «initWithCoder».

Самая большая проблема в том, что Xcode не указывал на какую-либо строку в моем коде. Я просто сделал это с «догадкой».

Надеюсь, это поможет.

0

У меня возникла аналогичная проблема, которая, похоже, влияет на некоторые типы iPad.Сцена пыталась добавить нулевого ребенка.

Добавление блока обработки исключений, похоже, исправил его, хотя я никогда не вижу инструкции печати исключений.

@try { 
     [self addChild:node]; 
    } 
    @catch (NSException *exception) { 
     NSLog(@"Exception adding node :%@",[exception description]); 
    } 
    @finally { 

    }