编译iPhone 3.0操作系统时UIActionSheets的奇怪错误

时间:2009-07-14 01:27:32

标签: iphone objective-c iphone-sdk-3.0 delegates

我最近开始针对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时没有出现。

作为另一条线索或证据,在运行应用程序时,不会显示任何操作表,而是会自动选择我的操作表的默认选项。我不确定这是否相关,但听起来有点巧合。

这里有什么想法吗?

1 个答案:

答案 0 :(得分:1)

你在这一行上有一个明显的错误:

UIApplication* app = [[UIApplication sharedApplication] delegate];

您正在获取UIApplication的实例,请求其委托,然后尝试将委托分配到UIApplication指针。

应该是:

id<UIApplicationDelegate> app = [[UIApplication sharedApplication] delegate];

我不确定它是否能完全解决您的错误,但肯定不会纠正您的错误。 =)