2011-03-31 86 views
0

我正在尝试编写一些有时会打开UIAlertViews的通用http响应处理函数。临时委托实例在objective-c

这些通用处理程序是类方法不知道其调用者(此刻)。

但是我正面临一个明显的问题,就是如何分配/释放UiAlertView委托对象。

例如

MyAlertViewHandler* alertHandler = [[MyAlertViewHandler alloc] init]; 
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:msg message:nil delegate:alertHandler cancelButtonTitle:TEXT_NEVERMIND otherButtonTitles:TEXT_RESET_PASSWORD,nil]; 
[alert show]; 
[alert autorelease]; 

这里有一个明显的内存泄漏因为我分配,并没有释放任何地方。

那么,我应该在哪里“挂起”MyAlertViewHandler,以便我可以释放它以避免内存泄漏?

一个想法是告诉调用者有一个NSObject需要释放并赋予UIViewController责任 - 但有没有另一种方式?

我希望我的问题很清楚。

回答

1

在您的alertView:didDismissWithButtonIndex:委托方法(在您的MyAlertViewHandler中),您可以简单地将[self release];[self autorelease];作为最后一个命令。