UIDevice currentDevice模型可能的值

Fer*_*gal 19 objective-c ios swift

返回的所有可能值是[[UIDevice currentDevice] model];什么?它没有 记录.

Ind*_*ore 40

可能的瓦莱斯是iPod touch,iPhone,iPhone Simulator,iPad,iPad Simulator

如果你想知道哪些硬件iOS是破坏像iPhone3,iPhone4,iPhone5等下面是该代码


注意:下面的代码可能不包含所有设备的字符串,我和其他人在GitHub上维护相同的代码,所以请从那里获取最新的代码

Objective-C:GitHub/DeviceUtil

Swift:GitHub/DeviceGuru


#include <sys/types.h>
#include <sys/sysctl.h>

- (NSString*)hardwareDescription {
    NSString *hardware = [self hardwareString];
    if ([hardware isEqualToString:@"iPhone1,1"]) return @"iPhone 2G";
    if ([hardware isEqualToString:@"iPhone1,2"]) return @"iPhone 3G";
    if ([hardware isEqualToString:@"iPhone3,1"]) return @"iPhone 4";
    if ([hardware isEqualToString:@"iPhone4,1"]) return @"iPhone 4S";
    if ([hardware isEqualToString:@"iPhone5,1"]) return @"iPhone 5";
    if ([hardware isEqualToString:@"iPod1,1"]) return @"iPodTouch 1G";
    if ([hardware isEqualToString:@"iPod2,1"]) return @"iPodTouch 2G";
    if ([hardware isEqualToString:@"iPad1,1"]) return @"iPad";
    if ([hardware isEqualToString:@"iPad2,6"]) return @"iPad Mini";
    if ([hardware isEqualToString:@"iPad4,1"]) return @"iPad Air WIFI";
    //there are lots of other strings too, checkout the github repo
    //link is given at the top of this answer

    if ([hardware isEqualToString:@"i386"]) return @"Simulator";
    if ([hardware isEqualToString:@"x86_64"]) return @"Simulator";

    return nil;
}

- (NSString*)hardwareString {
    size_t size = 100;
    char *hw_machine = malloc(size);
    int name[] = {CTL_HW,HW_MACHINE};
    sysctl(name, 2, hw_machine, &size, NULL, 0);
    NSString *hardware = [NSString stringWithUTF8String:hw_machine];
    free(hw_machine);
    return hardware;
}
Run Code Online (Sandbox Code Playgroud)

  • 我很好奇为什么这被接受了.它完全没有回答这个问题. (12认同)

jav*_*gas 22

我刚刚对iPod Touch,iPhone,Phone Retina,iPhone 5,iPad,iPad Retina和iPad Mini进行了测试.所以这是我的结论:

iPod touch
iPhone
iPad
Run Code Online (Sandbox Code Playgroud)

在模拟器上 - 如果您是开发人员从事有时在模拟器上根本无法工作的功能,这可能很有用 - 您将获得以下值:

iPhone Simulator
iPad Simulator
Run Code Online (Sandbox Code Playgroud)