2013-03-14 2 views
3

Мое приложение сбой из-за предупреждения с памятью.Принятые предупреждения о сбоях и сбои приложений

Если я запустил приложение в течение нескольких минут, а затем что-то сделал, приложение сразу сработает.

Я даже проверил на утечки памяти, но утечек памяти нет. Также приложение отлично работает в симуляторе.

Что я заметил, когда я получаю «предупреждение о принимаемой памяти», тогда вызывается метод «didReceiveMemoryWarning» для каждого файла в проекте, а затем сбой приложения.

Любое решение этого вопроса?

+0

этот вопрос WAY слишком широкий. –

+1

Вы должны делать что-то блестящее, случай не такой же на симуляторе и устройстве, устройства имеют меньшую память, чем симуляторы. Если вы можете предоставить свой фрагмент кода, было бы легче ответить. – iphonic

+2

Общий намек: используйте инструменты чтобы узнать, что использует память –

ответ

3

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

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

Я не могу точно сказать, что является причиной вашего приложения использовать столько памяти из информации, которую вы дали

+0

Я освобождаю все объекты в dealloc и viewdidunload. – Purva

+0

Да, они не помогут в этой ситуации, потому что представление не разгружается на данный момент, и на самом деле не отменяется. это потому, что пока вид все еще жив, происходит что-то, что занимает слишком много памяти, например, загружает очень большое изображение или что-то в этом роде.вам, вероятно, нужно будет найти способ уменьшить использование памяти. – Fonix

+0

Я инициализирую несколько массивов, которые используются снова и снова, но при перезагрузке страниц они сначала освобождаются, а затем снова инициализируются. – Purva

1

В АРК, событие (функциональность), которые создают принимаемый предупреждение памяти вопрос должен быть внутри @autoreleasepool{} .Received может возникнуть проблема с памятью, которая перегрузится из памяти устройства.

1

Проверить приложение на инструмент -> выделение памяти

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

Вы используете тяжелые изображения?

+0

Я проверил свое приложение с помощью инструментов. Нет утечки памяти. Также живые байты составляют около 4-5 МБ в среднем и 12-13 МБ, когда приложение разбилось. Нет, я не использую тяжелые изображения. – Purva

Смежные вопросы