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