Здравствуйте, члены семьи Stackoverflow!
У меня есть вопрос, касающийся управления памятью в iPhone.
Что я понял, был метод ниже
-(void) dealloc
{
// something else to release whatever
// such as Object Created using keyword 'alloc'
// but also Object destroy here its retain value reaches iff 0
// if I do put here NSLog(@"%d", [obj retainCount]); and when it reaches
// not equal to 0 means failure with memory leak.
[super dealloc];
}
Я правильно понимаю?или Это все еще хорошо, даже если счет сохранения достигает> 0 здесь?
Причина, по которой я спрашиваю об этом вопросе, потому что,
Я проверил с помощью
NSLog(@"%d", obj.retainCount);
, чтобы проверитьсохранить счетчик объекта и полученного значения 3. Поэтому я попытался освободить здесь 3 раза, чтобы сделать retainCount здесь равным 0, но компилятор выдает мне критическую ошибку.
Пожалуйста, я новичок в памяти.выделение и сохранение, освобождение.
Объект, который я использовал, был объектом 'UIImageView' и создал другой экземпляр как
UIImageView *imageView = //da da~ with UIImage
UIImageView *instance;
// at this point retain count was '1'
instance = imageView;
//[imageView retain];
// at this point retain count was '2'
[self.view addSubView: imageView];
// at this point retain count was '3'
[imageView release];// crashes
// at this point retain count was '2'
, но если я сделаю
// but if I add retain on the 'instance = imageView'
// such as
instance = imageView; // then
[imageView retain];
// works but still count is 2...
СпасибоВы.