0

我目前正在使用 UIAlertViewDelegate 在我的应用程序中启动时使用 UIAlertView。一切正常。唯一的问题是,每次我引用 App Delegate 时都会收到警告“类型 'id' 不符合 'UIAlertViewDelegate' 协议”,给我大约 32 个警告。

谁能解释为什么我会收到此警告以及如何满足它?

提前致谢!

4

2 回答 2

6

我假设您的应用程序代表是您的警报视图代表?

如果是这样,您需要在应用委托的声明中告诉编译器。像这样:

@interface SomeAppDelegate : NSObject <UIApplicationDelegate, UIAlertViewDelegate> {

}

// ... rest of interface

@end

然后你还需要实现所需的方法。

编辑:进一步考虑,我认为您在引用应用程序委托时可能缺少演员表。所以你有这样的事情:

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

// what you want is:

MyAppDelegate* appDelegate = (MyAppDelegate*)[[UIApplication sharedApplication] delegate];
于 2010-10-24T02:27:04.503 回答
0

主线程上可能不存在,试试

UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"My Title"
                                                    message:@"My message"
                                                   delegate:self cancelButtonTitle:@"OK"
                                          otherButtonTitles:nil];
[alertView performSelectorOnMainThread:@selector(show) withObject:nil waitUntilDone:NO];
于 2013-03-21T23:31:18.987 回答