How can I get the iOS device CPU architecture in runtime

前端 未结 3 1558
后悔当初
后悔当初 2020-12-04 23:19

Is there a way to identify the iOS device CPU architecture in runtime?

Thank you.

3条回答
  •  广开言路
    2020-12-04 23:43

    You can use sysctlbyname :

    #include 
    #include 
    #include 
    
    NSString *getCPUType(void)
    {
        NSMutableString *cpu = [[NSMutableString alloc] init];
        size_t size;
        cpu_type_t type;
        cpu_subtype_t subtype;
        size = sizeof(type);
        sysctlbyname("hw.cputype", &type, &size, NULL, 0);
    
        size = sizeof(subtype);
        sysctlbyname("hw.cpusubtype", &subtype, &size, NULL, 0);
    
        // values for cputype and cpusubtype defined in mach/machine.h
        if (type == CPU_TYPE_X86)
        {
                [cpu appendString:@"x86 "];
                 // check for subtype ...
    
        } else if (type == CPU_TYPE_ARM)
        {
                [cpu appendString:@"ARM"];
                switch(subtype)
                {
                        case CPU_SUBTYPE_ARM_V7:
                        [cpu appendString:@"V7"];
                        break;
                        // ...
                }
        }
        return [cpu autorelease];
    }
    

提交回复
热议问题