在我的项目中,它说从不兼容的类型 'id' 分配给 'AppDelegate *'。
这究竟是什么?为什么会出现此警告?
我已经在 .m 中声明了
AppDelegate *appdev;
并在 viewDidLoad
{
appdev = [[UIApplication sharedApplication]delegate]; <= warning here
}
我想隐藏这个警告。我应该怎么办?提前致谢。
在我的项目中,它说从不兼容的类型 'id' 分配给 'AppDelegate *'。
这究竟是什么?为什么会出现此警告?
我已经在 .m 中声明了
AppDelegate *appdev;
并在 viewDidLoad
{
appdev = [[UIApplication sharedApplication]delegate]; <= warning here
}
我想隐藏这个警告。我应该怎么办?提前致谢。
因为你知道它们相等,所以添加一个强制转换让编译器知道
AppDelegate* app = (AppDelegate*)[[UIApplication sharedApplication]delegate];
因为这也可能出现在 Swift 中
let app = UIApplication.shared.delegate as! AppDelegate
如果你想在任何地方导入 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];
您可以对其进行类型转换以防止出现警告消息。
尝试:
appdev = (AppDelegate *)[[UIApplication sharedApplication] delegate];
您需要键入 cast 因为它返回协议。
appdev = (AppDelegate *)[[UIApplication sharedApplication] delegate];