Iphone ipad UIImagePickerController问题?
我的应用程序是iphone应用程序,不是通用应用程序。我正在实施uiimagepickercontroller。它在iphone中运行良好。但我们的客户端在ipad上测试我的应用程序,该应用程序将崩溃。我发现问题“在ipad上,uiimagepickercontroller必须通过UIPopoverController显示”Iphone ipad UIImagePickerController问题?,iphone,ipad,Iphone,Ipad,我的应用程序是iphone应用程序,不是通用应用程序。我正在实施uiimagepickercontroller。它在iphone中运行良好。但我们的客户端在ipad上测试我的应用程序,该应用程序将崩溃。我发现问题“在ipad上,uiimagepickercontroller必须通过UIPopoverController显示” 我正在检查设备 NSString*deviceType=[UIDevice currentDevice]。型号 (此代码在通用应用程序中工作) 仅针对iPad实施UIPop
我正在检查设备 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来确定设备类型,但我找不到确定硬件型号名称的资源。