IPhone:如何从静态函数调用AlertView

时间:2012-02-10 06:11:32

标签: iphone

我有一个课程如下

#import "UtilAlert.h"

@implementation UtilAlert

+(void) showAlert:(NSString *)message andTitle:(NSString *)title andDelegate:(UIViewController *) delegate
{
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:title message:message delegate:delegate cancelButtonTitle:@"Cancel" otherButtonTitles:nil];
    [alert show];

}

@end

问题是当用必要的参数调用函数时......

[UtilAlert showAlert:@"hello" andTitle:@"hello" andDelegate:self] ;

我收到错误:主题1:在第3点停止;

来自UIController类的函数调用

2 个答案:

答案 0 :(得分:2)

这不是错误。您的代码中有一个断点,它是代码左边缘的小蓝箭头。再次单击蓝色箭头使其显示为浅蓝色以关闭断点。

此外,您应该在退出该功能之前显示警报,否则您将泄漏内存。

答案 1 :(得分:0)

只是一个疯狂的猜测,但如果您正在使用ARC,则当函数退出时,您的alert对象可能会被释放。在这种情况下,这可能有效:

+(void) showAlert:(NSString *)message andTitle:(NSString *)title andDelegate:(UIViewController *) delegate { 
    static UIAlertView *alert;
    if(!alert)
        alert = [[UIAlertView alloc] initWithTitle:title message:message delegate:delegate cancelButtonTitle:@"Cancel" otherButtonTitles:nil]; 

    [alert show];
}