2012-02-10 2 views
1

У меня есть класс следующим образомIPhone: Как позвонить AlertView из статической функции

#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

+0

Можете ли вы разместить свой файл .h? – mbh

ответ

2

Это не ошибка. У вас есть точка останова в вашем коде, которая представляет собой маленькую синюю стрелку в левом поле вашего кода. Нажмите синюю стрелку еще раз, чтобы сделать ее действительно голубой, чтобы отключить точку останова.

Кроме того, вы должны отпустить предупреждение после его отображения перед выходом из функции или утечки памяти.

+0

Хмм спасибо, но я думаю, что я работаю с ARC ....... –

0

Просто дикая догадка, но ваш объект 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]; 
} 
+0

, как бы вы тогда создали кнопкуIndex внутри статической функции? – whyoz

Смежные вопросы