我的应用程序是一个iPhone应用程序而不是通用应用程序。我正在实施uiimagepickercontroller它在iphone中工作正常。但我们的客户端在ipad上测试我的应用程序将崩溃。我发现问题'在iPad上,UIImagePickerController必须呈现通过UIPopoverController' 我正在检查设备
NSString * deviceType = [UIDevice currentDevice] .model;
(此代码适用于通用应用) 仅为iPad实现UIPopoverController。但即使我改用iPad模拟器,deviceType也总是显示“iPhone”。是否有可能在iphone Build中解决这个问题?
答案 0 :(得分:2)
您应该使用UI_USER_INTERFACE_IDIOM
宏来检查设备。
if (UIUserInterfaceIdiomPad == UI_USER_INTERFACE_IDIOM())
{
// your code
}
UIDevice
不是正确的选择。
答案 1 :(得分:0)
请参阅UIDevice
的userInterfaceIdiom
属性
答案 2 :(得分:0)
我单独为了解决这个问题而做了iPad。因为我无法在iPhone应用程序中获得设备类型的iPad。
答案 3 :(得分:-1)
就像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;
}