Игра вылетает на самом iPhone, но на симуляторе проблема с памятью? - PullRequest
2 голосов
/ 04 декабря 2009

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

С благодарностью.

Ответы [ 5 ]

1 голос
/ 04 декабря 2009

Я столкнулся с подобными проблемами (я также использую Cocos, но я не думаю, что это специфично для Cocos). Лучше всего подключить iPhone к сети и наблюдать за трассировкой стека в случае его сбоя (или извлекать трассировку стека по факту)

Это часто случалось со мной, потому что ресурсы между iPhone и симулятором не были синхронизированы; другими словами, некоторые, как ресурсы будут доступны для симулятора (например, изображения), но те же самые ресурсы не были переданы в iPhone по любой причине. Иногда, если бы я запускал «чистый» на симуляторе, я наблюдал бы ту же проблему.

Чрезвычайно сложно отлаживать подобные проблемы, но вы к этому привыкнете.

0 голосов
/ 04 декабря 2009

Без дополнительной информации я бы попробовал следующие шаги:

Удалите приложение с устройства и симулятора (используя технику касания и удержания, чтобы ваши значки перемешались) и переустановите его. Иногда настройка (или отсутствие настройки) в пользовательских настройках по умолчанию может привести к сбою, и они не будут удалены, пока вы не удалите и не запустите приложение повторно.

Также попробуйте опцию «имитировать память» в симуляторе и посмотрите, не приведет ли это к ее падению.

0 голосов
/ 04 декабря 2009

Я согласен с Домиником - нам определенно нужна дополнительная информация, чтобы помочь вам - у вас есть вывод из консоли или стек от отладчика?

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

Попробуйте запустить приложение в Instruments и посмотреть график использования памяти - тогда вы сможете не только увидеть общий объем использования вашего приложения, но и понять, какие разделы вашего приложения используют больше всего, и сосредоточить свои усилия на уменьшая его.

Sam

0 голосов
/ 04 декабря 2009

Я нашел такие инструменты, как Инструменты и NSZombieEnabled , которые очень полезны для отслеживания таких проблем, как эти.

0 голосов
/ 04 декабря 2009

Извините, но вам нужно указать более подробную информацию. Как происходит сбой? Что говорит журнал ошибок? Одна вещь, на которую вы можете обратить внимание, это количество памяти, которое потребляет ваша игра Если оно использует более 64 МБ на реальном устройстве, ОС, скорее всего, просто прекратит его. В симуляторе, с другой стороны, ваше приложение может без проблем использовать намного больше памяти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...