Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/113.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xcode+;Swift-仅当设备使用iOS 8时才具有某些元素_Ios_Xcode_Ios7_Swift_Compatibility - Fatal编程技术网

Xcode+;Swift-仅当设备使用iOS 8时才具有某些元素

Xcode+;Swift-仅当设备使用iOS 8时才具有某些元素,ios,xcode,ios7,swift,compatibility,Ios,Xcode,Ios7,Swift,Compatibility,我正在制作一个游戏,但我没有意识到我将目标设备设置为iOS 8。我把它改成了iOS 7,这样它就可以与更多的设备兼容了。然而,在iOS 7上测试时,我意识到UIVisualEffectView不起作用。我是否可以让UIVisualEffect视图仅在运行的设备具有iOS 8而非iOS 7时显示?签出。您可以使用中的一个宏获取当前的iOS版本,然后决定使用哪个类。例如: #define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v) ([[[UIDevice

我正在制作一个游戏,但我没有意识到我将目标设备设置为iOS 8。我把它改成了iOS 7,这样它就可以与更多的设备兼容了。然而,在iOS 7上测试时,我意识到UIVisualEffectView不起作用。我是否可以让UIVisualEffect视图仅在运行的设备具有iOS 8而非iOS 7时显示?

签出。您可以使用中的一个宏获取当前的iOS版本,然后决定使用哪个类。例如:

#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v)  ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)

if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"8.0")) {
    // Use UIVisualEffectViewClass
} else {
    // Use another class
}

如果您使用的是swift,请忽略宏部分,只使用代码。

您可以检查
UIVisualEffectView
是否可用,如下所示:

if (NSClassFromString("UIVisualEffectView") != nil) {
    NSLog("UIViewVisualEffectView is available");
    // Use UIVisualEffectView
} else {
    NSLog("UIViewVisualEffectView is not available");
    // Do something else
}

这种方法很好,因为代码记录了使用
if
语句的原因,并且您不必记住引入类时的操作系统版本。

请阅读文档中的“SDK兼容性指南”。它涵盖了这一点。哦,等等,这实际上只包括Objective-C。互操作性文档讨论了如何检查可选/新功能。如何创建
UIVisualEffectView
?如果是代码,给我们看代码。