在我的项目中,它说从不兼容的类型'id'分配给'AppDelegate *'。
这是什么意思?为什么会出现这种警告?我已经在.m
宣布了AppDelegate *appdev;
并在viewDidLoad
中{
appdev = [[UIApplication sharedApplication]delegate]; <= warning here
}
我想要隐藏此警告。我该怎么办?提前谢谢。
答案 0 :(得分:83)
因为你知道它们相等,所以添加一个强制转换让编译器知道
AppDelegate* app = (AppDelegate*)[[UIApplication sharedApplication]delegate];
因为这可能会出现在Swift中
let app = UIApplication.shared.delegate as! AppDelegate
答案 1 :(得分:7)
如果您希望导入 AppDelegate 任何地方。很简单。
IN APPDELEGATE
/**
* Get AppDelegate
* Call [AppDelegate getAppDelegate]
*
* @return AppDelegate
*/
+ (AppDelegate *) app {
return (AppDelegate *)[[UIApplication sharedApplication] delegate];
}
您的课程中的任何地方
#import "AppDelegate.h" // TOP OF YOUR CLASS
AppDelegate *app = [AppDelegate app];
答案 2 :(得分:3)
您可以输入它以防止出现警告信息。
尝试:
appdev = (AppDelegate *)[[UIApplication sharedApplication] delegate];
答案 3 :(得分:1)
您需要输入强制转换,因为它会返回Protocol。
appdev = (AppDelegate *)[[UIApplication sharedApplication] delegate];