iOS 7 SpriteKit Game - ошибка при сохранении загрузки игры: "Попытка добавить nil-узел к родителю: <SKNode> name: '(null)'

Я создаю игру в слова.

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

  • (void)encodeWithCoder:(NSCoder *)aCoder

  • (instancetype)initWithCoder:(NSCoder *)aDecoder

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

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

2014-01-11 18: 23: 12.254 GameTest[16622:70b] Завершение приложения из-за необработанного исключения

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

Я не знаю, где происходит ошибка в моем коде.

Ура Люк

2 ответа

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

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

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

    }

Спасибо LearnCocos2D,

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

Проблема заключалась в том, как я справился с границей "bodyWithEdgeLoop".

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

(void) encodeWithCoder: (NSCoder *) aCoder

а также

(instancetype)initWithCoder:(NSCoder *)aDecoder

методы.

Я использую книгу Рэй Вендерлиха по iOS Games by Tutorials и допустил ошибку в методе initWithCoder.

Я удалил и заменил тело граничного цикла в методе "encodeWithCoder", но не создал его в методе "initWithCoder".

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

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

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

Другие вопросы по тегам