CONTEXT
我正在开发目前在iPad设备上运行的填字游戏应用。 Apple最近发布了iPhone 6和iPhone 6+设备,幸运的是它拥有更大的屏幕,因此可以合法地运行我的游戏(我已经在iPhone 5S设备上测试了我的游戏,如果发现用户运行起来不舒服在这样的屏幕尺寸)。
通过这种方式,我决定将我的应用程序迁移到Universal二进制文件,其中包括对iPhone 6,iPhone 6 Plus和iPad设备的支持。
问题
或者,至少:
答案 0 :(得分:0)
我知道这可能为时已晚,并且可能无论如何都没有回答这个问题,但我认为'哎呀' - 这是确定设备范围的一小段代码,在这种情况下您可能需要不同的功能
#import <sys/sysctl.h>
-(BOOL)isANewerDevice{
size_t size;
sysctlbyname("hw.machine", NULL, &size, NULL, 0);
char *machine = malloc(size);
sysctlbyname("hw.machine", machine, &size, NULL, 0);
NSString *platform = [NSString stringWithCString:machine encoding:NSUTF8StringEncoding];
free(machine);
NSString * ending = [platform substringFromIndex:[platform length]-3];
double convertedNumber = [[ending stringByReplacingOccurrencesOfString:@"," withString:@"."] doubleValue];
//Devices listed here: https://stackoverflow.com/questions/19584208/identify-new-iphone-model-on-xcode-5-5c-5s
if ([platform containsString:@"iPhone"]) {
if (convertedNumber >= 7.1) { // 6 and above
return YES;
}else{
return NO; //less than a 6 (ie 5S and below)
}
}else if ([platform containsString:@"iPad"]){
if (convertedNumber >= 5.3) { //iPad Air 2 and above
return YES;
}else{
return NO; //iPad Mini 3 and below
}
}
//Failsafe
return NO;
}
代码中注释的链接:Identify new iPhone model on xcode (5, 5c, 5s)
注意即可。由于拥有containsString
,这将在iOS版本低于8时崩溃。要支持&lt; 8.0,请尝试使用以下代码重新调整此函数https://stackoverflow.com/a/26416172/1197723
玩得开心!