У моего приложения на iphone проблемы с памятью, и в конечном итоге происходит сбой - используется много изображений - PullRequest
1 голос
/ 19 июля 2010

Я новичок в программировании (научился писать приложения несколько месяцев назад), а недавно написал приложение, которое вылетает каждый раз примерно через 5 минут с несколькими предупреждениями о получении памяти.Уровень = 1 'предупреждений.Во время тестирования с помощью инструментов я не смог обнаружить утечки, и я уверен, что правильно освобождаю объекты, поэтому подозреваю, что проблемы с памятью связаны с большим количеством изображений PNG, которые я использую (около 80).Я попытался перейти с метода -imageNamed на -imageWithContentsOfFile и не увидел реального улучшения.Если кто-то может предложить какие-либо советы, я был бы очень признателен, так как я полностью застрял.

Ответы [ 3 ]

0 голосов
/ 19 июля 2010

Предположительно UIImage s, которые вы загружаете с помощью imageNamed, по возможности выгружают их содержимое, если они получают предупреждения памяти. Справочник по UIImage, см. Управление изображениями и памятью Это оставит только очень маленький пустой контейнер UIImage. Поэтому я подозреваю, что у вас есть другая проблема.

Проверьте наличие цикла в вашей программе и убедитесь, что он не протекает каким-либо образом.

0 голосов
/ 19 июля 2010

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

0 голосов
/ 19 июля 2010

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

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