Если progressHUD_ является сохраняемым свойством, вам нужно будет разблокировать его в dealloc. Тем не менее, хорошая особенность свойства retain заключается в том, что вам нужно только установить его на nil , чтобы освободить память; убедившись, что использовать «себя». до этого.
e.g.
self.<property_name> = nil;
// or in your case
self.progressHUD_ = nil;
// the following will not release it because it's not accessing the property:
progressHUD_ = nil
Я не рекомендую использовать [progressHUD_ release]
, потому что это может вызвать проблемы. например если в другом месте вы выпустили progressHUD_ и не установили его в nil, вы можете случайно освободить указатель, который больше не выделяется (висячий указатель).
Я также рекомендую вызывать self.progressHUD_ = nil;
в viewDidUnload
, который вызывается при нехватке памяти, и представление не отображается. Это не убивает ваш экземпляр класса, а просто выгружает представление. И, конечно, это предполагает, что вы звоните self.progressHUD_ = [[[MBProgressHUD alloc] initWithView:self.view] autorelease];
в viewDidLoad
, а не в init...