假设我有多个View控制器类使用相同的UIAlertView * alertView。 * alertView的委托设置为集中代表。
我这样做是因为想要使用.tag根据它做不同的事情。
问题是每次我调用警报视图或忽略它时,我该怎么做才能防止内存泄漏?
我不应该每次都放行吗?或者这是一个非常糟糕的主意?
感谢。
答案 0 :(得分:1)
可以从应用中的任何位置“显示”UIAlertView。我有一个应用程序,主UIViewController有一个计时器,每隔一段时间就会调出一个UIAlertView。当该计时器关闭时,即使我显示的主视图来自完全不同的UIViewController(并因此查看),警报也会出现在前面。
如果您真的想“主动”从任何UIViewControllers中调出UIAlertView(假设基于用户操作),那么我会做两件事之一。
1)使用在那里实现的UIAlertView设置我的Application Delegate Object,使用访问器方法调用(显示)Alert视图,从而将其从那里释放,或者
2)使用在那里实现的AlertView生成类似单例的对象!!!
在任何一种情况下,你都可以在你为这些展示位置编写的dealloc例程中简单地解除你的UIAlertView一次,并在初始化对象时只分配一次。
答案 1 :(得分:0)
就像对待任何其他物体一样对待它。如果要保留它,请将其分配给保留的属性,例如:self.myAlert。您仍然需要像创建它时通常那样释放它。保留的财产将负责为您保留它。
始终保持您的保留(分配,复制'等...)和发布平衡。