美文网首页IOS知识整理iOS开发
iOS 判断手机型号及系统版本

iOS 判断手机型号及系统版本

作者: 总有骄阳lcy | 来源:发表于2018-02-25 16:57 被阅读1768次

    iPhoneX推出已经有很长时间了,从最初的简单适配到前一段时间拿到真机开始做更优化的适配,我在部分地方用到了判断手机型号及系统版本的方法,下面分享一下。
    首先需要导入头文件

    #import <sys/utsname.h>
    

    之后进行判断

    struct utsname systemInfo;
    uname(&systemInfo);
    NSString*phoneType = [NSString stringWithCString: systemInfo.machine encoding:NSASCIIStringEncoding];
    
    if([phoneType  isEqualToString:@"iPhone1,1"])  return@"iPhone 2G";
    
    if([phoneType  isEqualToString:@"iPhone1,2"])  return@"iPhone 3G";
    
    if([phoneType  isEqualToString:@"iPhone2,1"])  return@"iPhone 3GS";
    
    if([phoneType  isEqualToString:@"iPhone3,1"])  return@"iPhone 4";
    
    if([phoneType  isEqualToString:@"iPhone3,2"])  return@"iPhone 4";
    
    if([phoneType  isEqualToString:@"iPhone3,3"])  return@"iPhone 4";
    
    if([phoneType  isEqualToString:@"iPhone4,1"])  return@"iPhone 4S";
    
    if([phoneType  isEqualToString:@"iPhone5,1"])  return@"iPhone 5";
    
    if([phoneType  isEqualToString:@"iPhone5,2"])  return@"iPhone 5";
    
    if([phoneType  isEqualToString:@"iPhone5,3"])  return@"iPhone 5c";
    
    if([phoneType  isEqualToString:@"iPhone5,4"])  return@"iPhone 5c";
    
    if([phoneType  isEqualToString:@"iPhone6,1"])  return@"iPhone 5s";
    
    if([phoneType  isEqualToString:@"iPhone6,2"])  return@"iPhone 5s";
    
    if([phoneType  isEqualToString:@"iPhone7,1"])  return@"iPhone 6 Plus";
    
    if([phoneType  isEqualToString:@"iPhone7,2"])  return@"iPhone 6";
    
    if([phoneType  isEqualToString:@"iPhone8,1"])  return@"iPhone 6s";
    
    if([phoneType  isEqualToString:@"iPhone8,2"])  return@"iPhone 6s Plus";
    
    if([phoneType  isEqualToString:@"iPhone8,4"])  return@"iPhone SE";
    
    if([phoneType  isEqualToString:@"iPhone9,1"])  return@"iPhone 7";
    
    if([phoneType  isEqualToString:@"iPhone9,2"])  return@"iPhone 7 Plus";
    
    if([phoneType  isEqualToString:@"iPhone10,1"]) return@"iPhone 8";
    
    if([phoneType  isEqualToString:@"iPhone10,4"]) return@"iPhone 8";
    
    if([phoneType  isEqualToString:@"iPhone10,2"]) return@"iPhone 8 Plus";
    
    if([phoneType  isEqualToString:@"iPhone10,5"]) return@"iPhone 8 Plus";
    
    if([phoneType  isEqualToString:@"iPhone10,3"]) return@"iPhone X";
    
    if([phoneType  isEqualToString:@"iPhone10,6"]) return@"iPhone X";
    
    

    每个人的适配方法不同,我在开发中只需要判断iPhoneX。

    判断手机系统版本,iOS 11以后有时候需要进行一下特别的修改

    NSString* phoneVersion = [[UIDevice currentDevice] systemVersion];
    

    或者

        if (@available(iOS 11.0, *)) {
         //
        }
    

    相关文章

      网友评论

      • 小蜜蜂Bee:判断条件要补充一些了,iPhone9.4是iPhone 7plus就判断不到
      • c3f7035d05ca:NSString* phoneVersion = [[UIDevice currentDevice] systemVersion]; 这一句写在哪
        总有骄阳lcy:写在你需要判断系统版本的时候啊
        NSString* phoneVersion = [[UIDevice currentDevice] systemVersion];
        NSLog(@"%@",phoneVersion);
        打印出来的就是当前的系统版本
      • c3f7035d05ca:我想问一下 你判断ios11版本 那个写法 为什么我总是报错
        总有骄阳lcy:@李优雅o 具体说一下,我都是直接用的也没有报错啊

      本文标题:iOS 判断手机型号及系统版本

      本文链接:https://www.haomeiwen.com/subject/zomrxftx.html