This question提供了一种确定正在使用的真实设备的绝佳方法。但是当在模拟器上运行时我想检测我是否在视网膜或64位版本上运行,那么我可以触发特殊逻辑呢?
答案 0 :(得分:2)
您可以通过查看[UIScreen mainScreen].scale
的值来确定设备(或模拟器)是否为视网膜。如果它是1,它是非视网膜。如果它是2,那就是视网膜。
可能有几种方法可以检测64/32位。一种方法是:
if (sizeof(CGFloat) == sizeof(double)) {
// 64-bit
} else {
// 32-bit
}
请注意,这会检查应用,而不是设备。 32位应用程序将在64位设备上运行。如果应用程序构建为支持64位且设备为64位,则上述代码仅返回true。
答案 1 :(得分:0)
您可以通过检查scale
的{{1}}来检测设备/模拟器是否为视网膜。
要确定运行时的CPU类型,可以使用:
[UIScreen mainScreen]
...
#include <mach/mach_host.h>