有些情況下,您想使用自己的動畫呈現警報樣式視圖控制器(而不是使用presentModalViewController:animated:
或UIAlertView
)。[自動釋放]是否可以接受?
釋放此視圖控制器的正確方法是在視圖消失時調用的回調函數中,但設置委託和所有似乎過度使用的方法。
所以我這樣做:
- (void)dismiss
{
[UIView animateWithDuration:0.3 delay:0 options:UIViewAnimationOptionCurveEaseIn animations:^{
self.view.alpha = 0;
} completion:^(BOOL finished) {
[self.view removeFromSuperview];
[self autorelease];
}];
}
和呈現對象將不能釋放或自動釋放視圖控制器。內存管理明智我沒有看到這個問題。這是不好的做法嗎?
你可以'autorelease'的'self'但'removeFromSuperview'就足以讓'superview'釋放'self'對象。 – holex 2012-07-20 10:04:34
你確定嗎?我認爲'removeFromSuperview:'會釋放視圖,但不是視圖控制器。 – Morrowless 2012-07-20 10:09:52
是的,你是對的,它只釋放'view'。內存管理的一些信息:你不應該釋放或釋放任何不是由你創建或保留的對象,它會導致內存泄漏。你必須「釋放」或「自動釋放」你'init','copy','retain'或'new'的對象,否則會導致內存泄漏。簡單。 :) – holex 2012-07-20 10:17:34