непонятная ошибка выделения памяти на iPhone - PullRequest
2 голосов
/ 27 октября 2010

Здравствуйте, я работаю над приложением для iPhone, которое предоставляет информацию с изображениями и текстами. В каждом тексте есть одно изображение, которое можно щелкнуть и увеличить, отображаемое с помощью UIImageView

    NSString* imgName = [imgPath substringToIndex:[imgPath rangeOfString:@".jpg"].location];
UIImage* img = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:imgName ofType:@"jpg"]]; 
[imgView setImage:img];

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

: ошибка декомпрессии my_app_name (1226,0x3e088868) malloc: * mmap (размер = 32768) не удалось (код ошибки = 12) * ошибка: невозможно выделить регион

, а затем:

CoreAnimation: не удалось выделить 2228352 байта.

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

Ответы [ 3 ]

2 голосов
/ 27 октября 2010

о, я думаю, я наконец-то исправил это.и да, мои изображения относительно большие, размером около 700 * 600.

проблема, кажется, в [imgView setImage:img];, хотя img выпущен, но каким-то образом все еще в памяти, я не знаю.Однострочный код [imgView setImage:nil]; перед выпуском imgView в dealloc устраняет проблему.

Спасибо за помощь.

1 голос
/ 27 октября 2010

Кажется, вы используете слишком много памяти?

Сколько изображений вы открываете?Начните с подключенных инструментов и следите за объемом памяти.

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

0 голосов
/ 27 октября 2010

Попробуйте объединить ваши распределения / выпуски в локальный пул автоматических релизов.

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