сбой приложения iPhone + на устройстве - PullRequest
0 голосов
/ 22 декабря 2009

Я разработал одно приложение для iPhone со Snow Leopard (10.6.2) и Xcode (3.2.1). Как многие из нас знают, что в этой новой версии XCode мы получаем возможность Build and Analyze (для проверки утечек памяти и других проблем). Когда я создаю и анализирую свое приложение, оно не выдает никаких ошибок / предупреждений.

Мое приложение отлично работает и на симуляторе.

Теперь я пытаюсь протестировать приложение на устройстве iPhone (конфигурация устройства: iPhone 2G и iPhone OS 3.0) с 8 ГБ памяти.

Проблема в том, что приложение хорошо запускается на устройстве iPhone, но через некоторое время оно вылетает.

Когда я вижу консоль из Окна-> Органайзер-> Консоль. Я вижу следующую ошибку:

Вт дек 22 17:17:39 unknown SpringBoard [27]: уровень памяти срочен (8%), и нет фоновых приложений, которые просят выйти.

Пожалуйста, помогите мне.

С уважением, Pratik

Ответы [ 3 ]

2 голосов
/ 22 декабря 2009

Анализатор обнаружит только наиболее очевидные проблемы с памятью. Вы должны быстро проверить приложение на наличие утечек инструментов.

Перейти в «Выполнить» -> «Выполнить с помощью инструмента повышения производительности» -> «Утечки»

Инструменты запустятся, и это будет очень запутанным, если вы не использовали их ранее. На данном этапе лучше проконсультироваться с документацией по приборам для дальнейшего разъяснения того, что происходит.

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

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

Анализатору не следует доверять на 100%. Он может выдавать ложные срабатывания, а в некоторых случаях и не забирать ни на одну ошибку кода. Это отличная помощь, но ни в коем случае не «универсальный магазин для исправления ошибок».

Кроме того, хотя анализатор может показывать, что у вас нет утечек, вы можете просто не освобождать память вообще? Как сказал ЧарлиП, мы не можем помочь вам без кода.

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

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

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

Возможно, вы также игнорируете сообщения о нехватке памяти от ОС. Вам нужно проверить использование памяти вашего приложения.

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