C++ 检测cpusubtype iPhone
我正在尝试获取运行我的应用程序的设备的cpusubtype。 是否有可能只获取cpusubtype? 关于这一点: 它会返回像9、11、12、64这样的数字吗?如果是,我可以使用C++ 检测cpusubtype iPhone,c++,objective-c,theos,C++,Objective C,Theos,我正在尝试获取运行我的应用程序的设备的cpusubtype。 是否有可能只获取cpusubtype? 关于这一点: 它会返回像9、11、12、64这样的数字吗?如果是,我可以使用 if hw.cpusubtype(64){ //code for arm64 } 链接到的线程中的代码 int32_t value = 0; size_t length = sizeof(value); sysctlbyname("hw.cpusubtype", &value, &length, NU
if hw.cpusubtype(64){
//code for arm64
}
链接到的线程中的代码
int32_t value = 0;
size_t length = sizeof(value);
sysctlbyname("hw.cpusubtype", &value, &length, NULL, 0);
将CPU子类型放入值
变量中,以便将其与
在
中定义的子类型,例如:
if (value == CPU_SUBTYPE_ARM_V7) {
// ...
}
但如果您的目的是检查您的应用程序是在32位还是64位上运行
然后,您必须获得“cputype”,而不是“cpusubtype”,如所示
在这里:
谢谢你的帮助。“hw.cputype”的问题是,如果设备是arm64,但仍然运行应用程序的armv7或amrv7s部分,我的代码将无法工作。@user3452589:您的问题是如何检测CPU子类型。如果这不能回答您的问题,那么您必须提供有关实际问题的更多信息。不,一切都很好:)再次感谢您第一个代码很好,因为它甚至可以检测到7,第二个代码不可能检测到这一点。
if (value == CPU_SUBTYPE_ARM_V7) {
// ...
}
sysctlbyname("hw.cputype", &value, &length, NULL, 0);
if (value == CPU_TYPE_ARM64) {
// ARM 64-bit CPU
} else if (value == CPU_TYPE_ARM) {
// ARM 32-bit CPU
} else {
// Something else.
}