Iphone 警告:';UID设备';可能不响应'-支持多任务';

Iphone 警告:';UID设备';可能不响应'-支持多任务';,iphone,objective-c,ios-simulator,fbconnect,uidevice,Iphone,Objective C,Ios Simulator,Fbconnect,Uidevice,我正在为iPhone开发新产品。但是我已经遵循了给出的步骤。。但当我构建时,它会向我显示这样一个警告:“警告:'UIDevice'可能不会响应'-isMultitaskingSupported'”,并且应用程序会崩溃。我正在使用iPhoneSimulator 4.1,但它仍然向我显示了这个警告。如果有人能帮我解决这个问题,那就太好了 提前感谢。4.0之前的iOS版本没有此方法,因此您必须使用respondsToSelector在调用该方法之前先检查该方法是否存在 if ([[UIDevice c


我正在为iPhone开发新产品。但是我已经遵循了给出的步骤。。但当我构建时,它会向我显示这样一个警告:“警告:'UIDevice'可能不会响应'-isMultitaskingSupported'”,并且应用程序会崩溃。我正在使用iPhoneSimulator 4.1,但它仍然向我显示了这个警告。如果有人能帮我解决这个问题,那就太好了


提前感谢。

4.0之前的iOS版本没有此方法,因此您必须使用
respondsToSelector
在调用该方法之前先检查该方法是否存在

if ([[UIDevice currentDevice] respondsToSelector:@selector(isMultitaskingSupported)] && [[UIDevice currentDevice] isMultitaskingSupported]) {
    // Device supports multi-tasking...

}
else {
    // No such luck.
}

因此,当您使用iPhone simulator 4.1时,我猜您已经将iOS版本设置为3.2(使用硬件菜单上的版本选项更改此设置)

4.0之前的iOS版本没有此方法,因此您必须使用
respondsToSelector
在调用该方法之前首先检查该方法是否存在

if ([[UIDevice currentDevice] respondsToSelector:@selector(isMultitaskingSupported)] && [[UIDevice currentDevice] isMultitaskingSupported]) {
    // Device supports multi-tasking...

}
else {
    // No such luck.
}

因此,当您使用iPhone simulator 4.1时,我猜您已经将iOS版本设置为3.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。您可以在项目中添加以下提及方法,以在执行任何操作之前检查设备是否支持多线程

- (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响应支持的多任务,但返回false的情况。此外,模拟器中的硬件设置与警告无关。在项目或目标生成设置中选中“iOS部署目标”。感谢回复:)。因为我使用了FBconnect,它具有FBApp登录对话框。我试着看看这个新的FBconnect是否可以使用,这样我就可以在3.2和4.0上使用它了。但是我在这里被绊倒了window=[[UIApplication sharedApplication].WindowsObjectatindex:0];应用程序在此崩溃..:(.@Anomie-True-我只是想说明各种可能的状态。也就是说,我将更新代码段。(无论如何,如果,您几乎总是在同一个
中检查这两种状态。)感谢您的回复:)。因为我使用了FBconnect,它具有FBApp登录对话框。我试着看看这个新的FBconnect是否可以使用,这样我就可以在3.2和4.0上使用它了。但是我在这里被绊倒了window=[[UIApplication sharedApplication].WindowsObjectatindex:0];应用程序正在这里崩溃。@Aby老实说,这听起来像是另一个问题,所以在第一次搜索查看以前是否有人问过类似的问题后,我很想打开一个新问题。在示例代码中,您忘记处理UIDevice响应
isMultitaskingSupported
但返回false的情况。此外,模拟器中的硬件设置与警告无关。在项目或目标生成设置中选中“iOS部署目标”。感谢回复:)。因为我使用了FBconnect,它具有FBApp登录对话框。我试着看看这个新的FBconnect是否可以使用,这样我就可以在3.2和4.0上使用它了。但是我在这里被绊倒了window=[[UIApplication sharedApplication].WindowsObjectatindex:0];应用程序在此崩溃..:(.@Anomie-True-我只是想说明各种可能的状态。也就是说,我将更新代码段。(无论如何,如果
,您几乎总是在同一个
中检查这两种状态。)感谢您的回复:)。因为我使用了FBconnect,它具有FBApp登录对话框。我试着看看这个新的FBconnect是否可以使用,这样我就可以在3.2和4.0上使用它了。但是我在这里被绊倒了window=[[UIApplication sharedApplication].WindowsObjectatindex:0];应用程序在这里崩溃了。@Aby老实说,这听起来像是一个不同的问题,所以在第一次搜索查看是否有人问过类似的问题之后,我很想打开一个新问题。