用于重用UIAlertView的内存管理

假设我有多个View控制器类使用相同的UIAlertView * alertView。 * alertView的委托设置为集中委托。

我这样做是因为想要使用.tag根据它做不同的事情。

问题是每次我调用警报视图或忽略它时,我该怎么做才能防止内存泄漏?

我不应该每次都发布吗? 或者这是一个非常糟糕的主意?

谢谢。

可以从应用程序的任何位置“显示”UIAlertView。 我有一个应用程序,主UIViewController有一个计时器,每隔一段时间就会调出一个UIAlertView。 当该计时器熄灭时,即使我显示的主视图来自完全不同的UIViewController(并因此查看),警报也会出现在前面。

如果你真的想“主动”从你的任何UIViewControllers中调出UIAlertView(假设基于用户操作),那么我会做两件事之一。

1)使用在那里实现的UIAlertView设置我的Application Delegate Object,使用访问器方法调用(显示)Alert视图,从而将其从那里释放,或者

2)使用在那里实现的AlertView生成类似单例的对象!

在任何一种情况下,您都可以在为这些放置中的任何一个放置的dealloc例程中简单地释放UIAlertView一次,并在初始化对象时仅分配一次。

就像对待任何其他物体一样对待它。 如果要保留它,请将其分配给保留的属性,例如:self.myAlert。 您仍然需要像创建它时通常那样释放它。 保留的财产将负责为您保留它。

始终保持您的保留(分配,副本等)和释放平衡。