检测设备是否正确显示UIVisualEffectView?

我的应用程序使用UIVisualEffectView来模糊背景,就像Control Center一样。 但是我发现可以运行iOS 8的iPad 2(和Retina iPad)function不足以显示该效果,因此它会变成灰色。 我想能够检测到该应用程序运行的设备是否足够强大,以显示模糊效果,如果不是,我不会应用它,而是我会改变背景颜色,看起来好多了那灰色的颜色。 但我不想只是检查设备是iPad 2还是iPad的第三代(这是否影响第四呢?)。 有没有更好的方法来检测UIBlurEffect是否会按预期显示?

查看此WWDC会话: http : //asciiwwdc.com/2014/sessions/419

所以,为了重申我们不会模糊的设备,我们只在iPad 2和iPad第三代进行着色,我们只应用色调,我们跳过模糊步骤。

[…]

在iPad第四代,iPad Air,iPad Mini,带有视网膜显示屏,iPhone和iPod touch的iPad Mini上,我们既做模糊又做着色。

我想你必须诉诸检查机器名称:

 #import <sys/utsname.h> ... struct utsname systemInfo; uname(&systemInfo); NSString *deviceName = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding]; ... 

苹果内部使用[UIDevice _graphicsQuality]进行这些检查。 在下面的post中,我提出了一个只使用公共API的方法: https : //stackoverflow.com/a/27879304/1914276