有些情况下,您想使用自己的动画呈现警报样式视图控制器(而不是使用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