Приложение сбой с сигналом SIGABRT
(выход отладчика child already added. It can't be added again
) в симуляторе и на устройстве. Работает нормально, когда я просматриваю приложение в Xcode во время его запуска на симуляторе или на устройстве. Почему это?Ошибка приложения на тренажере и устройстве, но не при профилировании
Update: Я понял, что эта строка кода вызывает проблему:
Mover *moverObject = [[[Mover alloc] init] autorelease];
NSMutableArray * array = [moverObject moveToward:startPoint :finalPoint]//<-- This is the problem
moveToward
является метод, который возвращает NSMutableArray
, содержащий точки из startPoint
в finalPoint
. Сегодня это сработало хорошо, но после того, как я начал тестировать что-то новое, я думаю, я сломал его. Я не внес изменений в фактический Mover.h/.m
только в GameLayer.m
(где я добавлял код). Я не уверен, что я добавил, чтобы вызвать проблему.
Update 2: Я сделал несколько более рыть с помощью контрольных точек, и я обнаружил, что
GameLayer *gameLayerObject = [[GameLayer alloc] init];<-- This causes the crash
Внутри mover.m
где метод moveToward::
есть, это дальше будет идти без сбоев. Опять ошибка child already added. It can't be added again.
Почему это происходит?
Да, я искал, где это может произойти, есть ли профилировщик, который, как вы знаете, может помочь в этом? Но почему приложение работает, пока я его профилирую? не приведет ли SIGAGRT к сбою при профилировании? – stenger96
Профилирование означает анализ того, как работает ваша программа, вы подразумеваете отладку. Если вы еще этого не сделали, включите глобальную точку исключения исключений в Xcode. Я не могу понять, почему он работает во время профилирования, возможно, вы просто не вызываете код, вызывающий ошибку. – LearnCocos2D
Обновлен мой вопрос. И после того, как он разбился на устройстве и симуляторе, я попытался воспроизвести сбой при профилировании, следуя ТОЧНЫМ тем же шагам, но приложение не сработает. – stenger96