Iphone ipad UIImagePickerController问题?

Iphone ipad UIImagePickerController问题?,iphone,ipad,Iphone,Ipad,我的应用程序是iphone应用程序,不是通用应用程序。我正在实施uiimagepickercontroller。它在iphone中运行良好。但我们的客户端在ipad上测试我的应用程序,该应用程序将崩溃。我发现问题“在ipad上,uiimagepickercontroller必须通过UIPopoverController显示” 我正在检查设备 NSString*deviceType=[UIDevice currentDevice]。型号 (此代码在通用应用程序中工作) 仅针对iPad实施UIPop

我的应用程序是iphone应用程序,不是通用应用程序。我正在实施uiimagepickercontroller。它在iphone中运行良好。但我们的客户端在ipad上测试我的应用程序,该应用程序将崩溃。我发现问题“在ipad上,uiimagepickercontroller必须通过UIPopoverController显示”
我正在检查设备

NSString*deviceType=[UIDevice currentDevice]。型号

(此代码在通用应用程序中工作)
仅针对iPad实施UIPopoverController。但是,即使我切换到iPad模拟器,deviceType也始终显示“iPhone”。是否可以在iPhone构建中解决此问题?

您应该使用
UI\u USER\u INTERFACE\u惯用语
宏来检查设备

if (UIUserInterfaceIdiomPad == UI_USER_INTERFACE_IDIOM())
{
    // your code
}

UIDevice
在这里不是正确的选择。

参考
userInterfaceIdiom
属性,如Erica Sadun所说,您可以通过以下方式访问设备字符串:

- (NSString *) getSysInfoByName:(char *)typeSpecifier
{
    size_t size;
    sysctlbyname(typeSpecifier, NULL, &size, NULL, 0);
    char *answer = malloc(size);
    sysctlbyname(typeSpecifier, answer, &size, NULL, 0);
    NSString *results = [NSString stringWithCString:answer encoding: NSUTF8StringEncoding];
    free(answer);
    return results;
}

为了解决这个问题,我单独使用了iPad。因为我无法在iPhone应用程序中获得设备类型的iPad。

有可用的高级类和函数,可以确定设备类型的应用程序正在运行。不需要依赖低级API,这可能会在将来导致不兼容和其他问题。您说得对,不需要依赖低级API来确定设备类型,但我找不到确定硬件型号名称的资源。