Сбой CCScheduler при отправке сообщения на освобожденный экземпляр - PullRequest
0 голосов
/ 13 марта 2012

Это может звучать как нубский вопрос, потому что это так.В течение нескольких дней я пытался понять, что я делаю, чтобы он завис, но я не могу понять.

У меня есть различные объекты, которые используют CCActions.Когда объекты должны быть удалены с экрана, я вызываю [spriteObject stopAllActions];Затем я освобождаю действия.(Я сохраняю действия в init, так как пытался избежать такого рода сбоев).

Программа случайно вылетает на этой строке в CCScheduler:

[elt->currentTimer release];

Сообщение об ошибке состоит в том, чтоЯ отправляю сообщение в освобожденный экземпляр.Но я не могу понять, что освобождается, когда.Я сохраняю все действия, которые я создаю.Я даже попытался запустить программу, не выпуская действия, чтобы увидеть, была ли это причина, но она все еще дает сбой.

Иногда происходит сбой через 20 минут, иногда через 2 минуты.Это довольно случайно.Я не уверен, что поставить, потому что код довольно распространен.

По сути, у меня есть Sprite, который содержит объект «Стратегия», который содержит CCAction, который выполняется.Во время выполнения я создаю «стратегию» и передаю ее спрайту, который сохраняет стратегию.

Спрайты не освобождаются до конца выполнения программы.

Любые идеи о том, как я могу выяснить, что освобождается, где и почему?Я действительно не могу понять это.Не уверен, какую информацию выложить здесь.: C

1 Ответ

0 голосов
/ 09 апреля 2012

Cocos2d в настоящее время не является потокобезопасным, и API-интерфейсы не должны вызываться из других потоков.

...