я выпускаю изображение с [myimageview.image release];
но после того, как приложение оказалось в фоновом режиме, оно снова выходит на передний план, оно снова выпускает это изображение, поэтому оно вылетает!Все мои попытки проверить, пришло ли приложение из фона, не сработало.Итак, как я могу проверить, освобожден ли объект уже ... так что я не делаю это дважды?
thankx chris
EDIT После нескольких жалоб на мое плохое кодирование :) вот пример:
Сначала я инициализирую массив с путем к множеству полноэкранных изображений. Также имеется около 10 различных массивов для 10 различных сцен.Когда я помещал изображения непосредственно в массив, ему просто нужно было много памяти с самого начала, или когда я полностью выпустил сцену, мне нужно было снова загрузить весь массив изображений, и это происходило медленно.Поэтому я просто загружаю путь к изображениям в массив и присваиваю каждую картинку в цикле моему изображению во время выполнения.
Инициализация один раз: imageArray_stand = [[NSArray alloc] initWithObjects: @ "FrankieArmeRaus_0001.jpg",... до 60 изображений @ "FrankieArmeRaus_0061.jpg", nil];
В цикле, который вызывается каждые 1/10 секунды:
if ([myimageview.image retainCount] > 1)
//if ( myimageview.image != nil) // does not work = crash
{
[myimageview.image release];
myimageview.image = nil;
}
myimageview.image = [UIImage imageNamed:[imageArray_stand2 objectAtIndex:piccounter-1]];
Проблема возникла, потому что, когда приложениеперешел в фоновый режим, а затем снова на передний план, кажется, что он выпускает изображение 2 раза, поэтому мне нужно решение, чтобы проверить это.
Я рад любому решению (просто СЕЙЧАС оно работает), которое лучше.Даже для полной загрузки всех изображений в массив, но, как уже упоминалось, для этого требуется много памяти и переназначение, а для выполнения требуется длительное время загрузки.(1 секунда для 50 изображений)
Кроме того, мне нужно было RELASE и установить значение NIL, потому что в противном случае это даже привело бы к превышению моего использования памяти.