我目前正在使用 UIAlertViewDelegate 在我的应用程序中启动时使用 UIAlertView。一切正常。唯一的问题是,每次我引用 App Delegate 时都会收到警告“类型 'id' 不符合 'UIAlertViewDelegate' 协议”,给我大约 32 个警告。
谁能解释为什么我会收到此警告以及如何满足它?
提前致谢!
我目前正在使用 UIAlertViewDelegate 在我的应用程序中启动时使用 UIAlertView。一切正常。唯一的问题是,每次我引用 App Delegate 时都会收到警告“类型 'id' 不符合 'UIAlertViewDelegate' 协议”,给我大约 32 个警告。
谁能解释为什么我会收到此警告以及如何满足它?
提前致谢!
我假设您的应用程序代表是您的警报视图代表?
如果是这样,您需要在应用委托的声明中告诉编译器。像这样:
@interface SomeAppDelegate : NSObject <UIApplicationDelegate, UIAlertViewDelegate> {
}
// ... rest of interface
@end
然后你还需要实现所需的方法。
编辑:进一步考虑,我认为您在引用应用程序委托时可能缺少演员表。所以你有这样的事情:
MyAppDelegate* appDelegate = [[UIApplication sharedApplication] delegate];
// what you want is:
MyAppDelegate* appDelegate = (MyAppDelegate*)[[UIApplication sharedApplication] delegate];
主线程上可能不存在,试试
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"My Title"
message:@"My message"
delegate:self cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alertView performSelectorOnMainThread:@selector(show) withObject:nil waitUntilDone:NO];