Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 检测cpusubtype iPhone_C++_Objective C_Theos - Fatal编程技术网

C++ 检测cpusubtype iPhone

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

我正在尝试获取运行我的应用程序的设备的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, 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.
}