Я знаю, что управление памятью в iOS является сложной задачей для таких новичков, как я, но я надеялся получить четкое объяснение здесь по поводу переполнения стека, которое я не смог найти где-либо еще.
Итак, представьте, что у меня есть свойство / ivar
@property(nonatomic, retain) UIPopoverController *popOver;
, которое я выделяю следующим образом:
self.popOver = [[[UIPopoverController alloc] initWithContentViewController:popOverContent] autorelease];
Теперь в моих методах dealloc и viewDidUnload,Я делаю оба
// in viewDidUnload:
self.popOver = nil;
// in dealloc:
[popOver release];
Вопрос:
- Если я делаю nil / release в viewDidUnload / dealloc, действительно ли мне нужно автоматически выпускать при выделении?
- Viceнаоборот, если я делаю авто-релиз при распределении, нужно ли мне ноль / выпуск позже?
- Какая разница, если есть?
Заранее спасибо за ваше время - я будупродолжайте читать, серьезно, управление памятью не может быть таким сложным, чтобы обернуть голову ...