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

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";

if([phoneType  isEqualToString:@"iPhone11,8"]) return@"iPhone XR";

if([phoneType  isEqualToString:@"iPhone11,2"]) return@"iPhone XS";

if([phoneType  isEqualToString:@"iPhone11,4"]) return@"iPhone XS Max";

if([phoneType  isEqualToString:@"iPhone11,6"]) return@"iPhone XS Max";

来源网站 https://www.theiphonewiki.com/wiki/Models

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

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

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

或者

    if (@available(iOS 11.0, *)) {
     //
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容