首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UIDevice currentDevice模型可能的值

UIDevice currentDevice模型可能的值
EN

Stack Overflow用户
提问于 2013-01-19 12:26:17
回答 4查看 31.3K关注 0票数 21

[[UIDevice currentDevice] model];返回的所有可能值是什么?它不是documented

EN

回答 4

Stack Overflow用户

发布于 2013-01-19 12:33:29

可能的值有iPod touchiPhoneiPhone SimulatoriPadiPad Simulator

如果你想知道iOS是在iPhone3iPhone4iPhone5等硬件上崩溃的,下面的代码就是这样的

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

Objective-C:GitHub/DeviceUtil

Swift:GitHub/DeviceGuru

代码语言:javascript
复制
#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;
}
票数 41
EN

Stack Overflow用户

发布于 2013-05-15 22:36:55

我刚刚测试了iPod Touch、iPhone、Phone Retina、iPhone 5、iPad、iPad Retina和iPad Mini。所以我的结论是:

代码语言:javascript
复制
iPod touch
iPhone
iPad

在模拟器上-如果你是一个开发人员,在模拟器上开发有时根本不起作用的功能,这可能会很有用-你会得到以下值:

代码语言:javascript
复制
iPhone Simulator
iPad Simulator
票数 23
EN

Stack Overflow用户

发布于 2016-09-15 03:45:26

我认为最好的解释(这里没有写的东西)是说这个值本身是一个字符串值。可能的答案是字符串,例如:"iPhone“、"iPad”等。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14411075

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档