了解设备类型 – 视网膜/非视网膜

可能重复:
检测视网膜显示

我们怎么知道设备是否有来自客观C代码的视网膜显示器?

if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)] && [[UIScreen mainScreen] scale] >= 2.0) { // Retina } else { // Not Retina } 

您可以检查[UIScreen mainScreen]上的scale属性,如果它是在视网膜上运行的2.0,如果它是1.0则不是。 您还可以从当前的CoreGraphics上下文中获取比例。

我不认为你可以直接确定。 您必须从可以从sysctlbyname获取的模型信息中推断出它(请参阅iOS手册页)。 例如:

 sysctlbyname("hw.machine", NULL, &size, NULL, 0); char *machine = malloc(size); sysctlbyname("hw.machine", machine, &size, NULL, 0); 

会给你一个字符串,如“iPhone3,1”,它有一个视网膜显示,或“iPhone 2,1”没有。