警告:“UIDevice”可能不会响应“-isMultitaskingSupported”
Posted
技术标签:
【中文标题】警告:“UIDevice”可能不会响应“-isMultitaskingSupported”【英文标题】:Warning: 'UIDevice' may not respond to '-isMultitaskingSupported' 【发布时间】:2011-03-20 21:26:52 【问题描述】:我正在为 iPhone 使用新的FBConnect。但是我已经按照给定的步骤操作了。但是当我构建它时,它会向我显示这个警告“警告:'UIDevice'可能不会响应'-isMultitaskingSupported'”并且应用程序崩溃。我正在使用 iphone 模拟器 4.1,但它仍然向我显示此警告。如果有人可以帮助我解决这个问题,那就太好了。
提前致谢。
【问题讨论】:
【参考方案1】:ios 4.0 之前的版本没有这个方法,所以你必须使用respondsToSelector
在调用它之前先检查该方法是否存在。
if ([[UIDevice currentDevice] respondsToSelector:@selector(isMultitaskingSupported)] && [[UIDevice currentDevice] isMultitaskingSupported])
// Device supports multi-tasking...
else
// No such luck.
因此,当您使用 iPhone 模拟器 4.1 时,我猜您已将 iOS 版本设置为 3.2(使用“硬件”菜单上的“版本”选项进行更改)。
【讨论】:
在您的示例代码中,您忘记处理 UIDevice 响应isMultitaskingSupported
但返回 false 的情况。此外,模拟器中的硬件设置与警告无关。在您的项目或目标构建设置中检查“iOS 部署目标”。
感谢您的回复 :) 。因为我使用了具有 FBApp 登录对话框的 FBconnect。我试图看看这是否适用于这个新的 FBconnect,以便我可以在 3.2 和 4.0 上使用它。但我被困在这里 window = [[UIApplication sharedApplication].windows objectAtIndex:0];应用程序在这里崩溃.. :(.
@Anomie True - 我只是想说明各种可能的状态。也就是说,我会更新sn-p。 (无论如何,您几乎总是会在同一个if
中同时检查两者。)
感谢您的回复 :) 。因为我使用了具有 FBApp 登录对话框的 FBconnect。我试图看看这是否适用于这个新的 FBconnect,以便我可以在 3.2 和 4.0 上使用它。但我被困在这里 window = [[UIApplication sharedApplication].windows objectAtIndex:0];应用程序在这里崩溃..
@Aby 老实说,这听起来像是一个不同的问题,所以我很想打开一个新问题,先搜索一下是否有人问过类似的问题。【参考方案2】:
您可以在您的项目中添加下面提到的方法,以在任何操作之前检查设备是否支持多线程
- (BOOL) isMultitaskingSupported
BOOL result = NO;
UIDevice *device = [UIDevice currentDevice];
if (device != nil)
if ([device respondsToSelector:@selector(isMultitaskingSupported)] == YES)
#ifdef __IPHONE_4_0
#if (__IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_4_0)
result = [device isMultitaskingSupported];
#endif
#endif
return(result);
如果设备支持多任务处理,这将返回 Bool 即 True
【讨论】:
以上是关于警告:“UIDevice”可能不会响应“-isMultitaskingSupported”的主要内容,如果未能解决你的问题,请参考以下文章
NSBundle 可能不会响应 +loadNibNamed:owner:options:
在 iPhone 中收到警告:NSString 可能无法响应“-JSONValue”