我最近开始针对3.0操作系统编译我的iPhone应用程序。该应用程序在针对2.2.1编译时工作正常,但是,针对3.0进行编译会产生以下警告:
警告:输入'id ' 才不是 符合'UIActionSheetDelegate' 协议
这发生在以下代码片段的第二行,该代码片段位于我的app delegate类中。
+ (PooClientAppDelegate*) instance;
{
UIApplication* app = [[UIApplication sharedApplication] delegate]; // warning occurs here
return (PooClientAppDelegate*)app;
}
我不确定这个错误来自哪里,因为它在构建旧版SDK时没有出现。
作为另一条线索或证据,在运行应用程序时,不会显示任何操作表,而是会自动选择我的操作表的默认选项。我不确定这是否相关,但听起来有点巧合。
这里有什么想法吗?
答案 0 :(得分:1)
你在这一行上有一个明显的错误:
UIApplication* app = [[UIApplication sharedApplication] delegate];
您正在获取UIApplication的实例,请求其委托,然后尝试将委托分配到UIApplication指针。
应该是:
id<UIApplicationDelegate> app = [[UIApplication sharedApplication] delegate];
我不确定它是否能完全解决您的错误,但肯定不会纠正您的错误。 =)