获取iOS设备名/分辨率

//https://github.com/SVGKit/SVGKit
//SVGKit -> SVGLength.m

        size_t size;
	sysctlbyname("hw.machine", NULL, &size, NULL, 0);
	char *machine = malloc(size);
	sysctlbyname("hw.machine", machine, &size, NULL, 0);
	NSString *platform = [NSString stringWithUTF8String:machine];
	free(machine);
	
	if( [platform hasPrefix:@"iPhone1"]
	|| [platform hasPrefix:@"iPhone2"]
	|| [platform hasPrefix:@"iPhone3"])
		return 163.0f;
	
	if( [platform hasPrefix:@"iPhone4"]
	|| [platform hasPrefix:@"iPhone5"]
	|| [platform hasPrefix:@"iPhone6"])
		return 326.0f;
    
    //
    // For iPhone6+
    // Added by Gerry 2014.11.22 10:12
    //
    // Note: iPhone6  326ppi
    if( [platform hasPrefix:@"iPhone7"]) {
        return 401.0f;
    }
	
	if( [platform hasPrefix:@"iPhone"]) // catch-all for higher-end devices not yet existing
	{
		NSAssert(FALSE, @"Not supported yet: you are using an iPhone that didn‘t exist when this code was written, we have no idea what the pixel count per inch is!");
		return 326.0f;
	}
	
	if( [platform hasPrefix:@"iPod1"]
	   || [platform hasPrefix:@"iPod2"]
	   || [platform hasPrefix:@"iPod3"])
		return 163.0f;
	
	if( [platform hasPrefix:@"iPod4"]
	   || [platform hasPrefix:@"iPod5"])
		return 326.0f;
	
	if( [platform hasPrefix:@"iPod"]) // catch-all for higher-end devices not yet existing
	{
		NSAssert(FALSE, @"Not supported yet: you are using an iPod that didn‘t exist when this code was written, we have no idea what the pixel count per inch is!");
		return 326.0f;
	}
	
	if( [platform hasPrefix:@"iPad1"]
	|| [platform hasPrefix:@"iPad2"])
		return 132.0f;
	if( [platform hasPrefix:@"iPad3"]
	|| [platform hasPrefix:@"iPad4"])
		return 264.0f;
	if( [platform hasPrefix:@"iPad"]) // catch-all for higher-end devices not yet existing
	{
		NSAssert(FALSE, @"Not supported yet: you are using an iPad that didn‘t exist when this code was written, we have no idea what the pixel count per inch is!");
		return 264.0f;
	}
	
	if( [platform hasPrefix:@"x86_64"])
	{
		DDLogWarn(@"[%@] WARNING: you are running on the simulator; it‘s impossible for us to calculate centimeter/millimeter/inches units correctly", [self class]);
		return 132.0f; // Simulator, running on desktop machine
	}


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。