Делегат приложения выдает предупреждение: id <UIApplicationDelegate>не соответствует протоколу UIAlertViewDelegate - PullRequest
0 голосов
/ 24 октября 2010

В настоящее время я использую UIAlertView при запуске в моем приложении с UIAlertViewDelegate.Все отлично работает.Единственная проблема заключается в том, что я получаю предупреждение «type 'id” не соответствует протоколу «UIAlertViewDelegate» »каждый раз, когда я ссылаюсь на делегат приложения, давая мне около 32 предупреждений.

Может ли кто-нибудь пролить свет напочему я получаю это предупреждение и как я могу его удовлетворить?

Заранее спасибо!

Ответы [ 2 ]

6 голосов
/ 24 октября 2010

Я предполагаю, что ваш делегат приложения является вашим представителем предупреждений?

Если это так, вам нужно сообщить об этом компилятору в объявлении делегата приложения.Например:

@interface SomeAppDelegate : NSObject <UIApplicationDelegate, UIAlertViewDelegate> {

}

// ... rest of interface

@end

И затем вам также необходимо реализовать требуемые методы.

РЕДАКТИРОВАТЬ: Если подумать об этом, я думаю, что, возможно, вы пропустили приведение, когда вы ссылаетесь на приложениеделегировать.Итак, у вас есть что-то вроде этого:

MyAppDelegate* appDelegate = [[UIApplication sharedApplication] delegate];

// what you want is:

MyAppDelegate* appDelegate = (MyAppDelegate*)[[UIApplication sharedApplication] delegate];
0 голосов
/ 22 марта 2013

Может не существовать в главном потоке, попробуйте

UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"My Title"
                                                    message:@"My message"
                                                   delegate:self cancelButtonTitle:@"OK"
                                          otherButtonTitles:nil];
[alertView performSelectorOnMainThread:@selector(show) withObject:nil waitUntilDone:NO];
...