2

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

我这样做是因为想使用 .tag 基于它做不同的事情。

问题是每次我调用警报视图或关闭它时,我必须做些什么来防止内存泄漏?

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

谢谢。

4

2 回答 2

1

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

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

1)使用在那里实现的 UIAlertView 设置我的应用程序委托对象,并使用用于调用(显示)警报视图的访问器方法,从而也从那里释放它,或者

2) 生成一个类似单例的对象,在那里实现了 AlertView !!!

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

于 2012-07-16T15:48:21.563 回答
0

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

始终保持您的保留(分配、副本等)和发布平衡。

于 2012-07-16T15:47:27.493 回答