【问题标题】:Warning: 'UIDevice' may not respond to '-isMultitaskingSupported'警告:“UIDevice”可能不会响应“-isMultitaskingSupported”
【发布时间】:2011-03-20 21:26:52
【问题描述】:


我正在为 iPhone 使用新的FBConnect。但是我已经按照给定的步骤操作了。但是当我构建它时,它会向我显示这个警告“警告:'UIDevice'可能不会响应'-isMultitaskingSupported'”并且应用程序崩溃。我正在使用 iphone 模拟器 4.1,但它仍然向我显示此警告。如果有人可以帮助我解决这个问题,那就太好了。

提前致谢。

【问题讨论】:

    标签: iphone objective-c ios-simulator fbconnect uidevice


    【解决方案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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-06
      • 1970-01-01
      • 1970-01-01
      • 2011-01-06
      • 1970-01-01
      相关资源
      最近更新 更多