针对 iPhone 3.0 操作系统编译时 UIActionSheets 出现奇怪错误
Posted
技术标签:
【中文标题】针对 iPhone 3.0 操作系统编译时 UIActionSheets 出现奇怪错误【英文标题】:Weird error for UIActionSheets when compiling against iPhone 3.0 OS 【发布时间】:2009-07-14 01:27:32 【问题描述】:我最近开始针对 3.0 操作系统编译我的 iPhone 应用程序。该应用程序在针对 2.2.1 编译时运行良好,但是针对 3.0 编译会产生以下警告:
警告:输入 'id ' 才不是 符合“UIActionSheetDelegate” 协议
这发生在我的应用程序委托类中的以下代码 sn-p 的第二行。
+ (PooClientAppDelegate*) instance;
UIApplication* app = [[UIApplication sharedApplication] delegate]; // warning occurs here
return (PooClientAppDelegate*)app;
我不确定这个错误来自哪里,因为它在针对旧 SDK 构建时没有出现。
作为另一个线索或证据,在运行应用程序时,不会出现任何操作表,而是自动选择我的操作表的默认选项。我不确定这是否相关,但听起来不仅仅是巧合。
有什么想法吗?
【问题讨论】:
【参考方案1】:你在这一行有一个明显的错误:
UIApplication* app = [[UIApplication sharedApplication] delegate];
您正在获取 UIApplication 的实例,请求其委托,然后尝试将委托分配给 UIApplication 指针。
应该是:
id<UIApplicationDelegate> app = [[UIApplication sharedApplication] delegate];
我不确定它是否能完全解决您的错误,但它肯定不会纠正您的错误方式。 =)
【讨论】:
呃!太好了,修复了它!我的 ActionSheet 错误完全不同。出于好奇,警告中提到了 UIActionSheetDelegate - 你知道这是为什么吗? @aloo -delegate 方法返回一个 id,UIApplication 实现的第一个协议是 UIActionSheetDelegate。由于 id 没有实现该协议,它给你一个错误。 (这是一个猜测,但我很确定是对的) *我很确定我是对的。 (我希望我们可以编辑 cmets...)以上是关于针对 iPhone 3.0 操作系统编译时 UIActionSheets 出现奇怪错误的主要内容,如果未能解决你的问题,请参考以下文章
Adobe AIR 3.0自带运行时兼容什么版本的Android和iOS?
applicationWillResignActive 关闭键盘 iPhone
发布的应用在应用商店中显示与 iPad 兼容,但仅针对 iPhone 编译