我正在开发一个只能安装在iPhone 4及更高版本中的应用程序。我还要通过 UIRequiredDeviceCapabilities和设备兼容性矩阵。我需要更多解决方案。
答案 0 :(得分:2)
首先,您可以使用UIDevice
类:
[[UIDevice currentDevice] model]
这将返回类似“iPod touch”或“iPhone”的内容。
您可以使用以下代码获取确切的模型平台:
(您必须#include <sys/types.h>
和<sys/sysctl.h>
)
size_t size;
sysctlbyname("hw.machine", NULL, &size, NULL, 0);
char *machine = malloc(size);
sysctlbyname("hw.machine", machine, &size, NULL, 0);
NSString *platform = @(machine); // Old syntax: [NSString stringWithCString:machine encoding:NSUTF8StringEncoding]
free(machine);
现在platform
是一个包含设备生成的字符串,例如:
iPhone1,1
用于 iPhone 2G (第一部iPhone)iPhone1,2
用于 iPhone 3G iPhone2,1
用于 iPhone 3GS iPhone3,1
或iPhone3,2
用于 iPhone 4 iPhone4,1
用于 iPhone 4S iPhone5,1
或iPhone5,2
用于 iPhone 5 请注意,iPhone 4平台逗号前面的数字实际上是 3 ,而不是4。 使用此字符串可以隔离此数字并检查它是否大于或等于3:
if ([[[UIDevice currentDevice] model] isEqualToString:@"iPhone"]) {
if ([[[platform componentsSeparatedByString:@","][0] substringFromIndex:6] intValue] >= 3) {
// Device is iPhone 4 or newer
} else {
// Device is older than iPhone 4
}
}
但是:您可以实际检查屏幕的比例,因为iPhone 4是第一款带有视网膜显示屏的iPhone:
[[UIScreen mainScreen] scale] // Returns 2.0f on the iPhone 4 and newer and 1.0f on older devices