有没有办法根据运行时iOS版本在Swift
中有条件地导入框架?
特别是,我的应用的部署目标为iOS 8
。我想在应用程序中使用新的Apple Speech
框架,如果它在运行时可用的话。我知道代码部分的#available(iOS 10, *)
指令,以及可用于整个类的@available(iOS 10, *)
指令。因此,我可以轻松避免执行任何使用Speech框架的代码。但是在包含使用Speech的类的文件中,我需要" import Speech"声明,这两个指令都不能在那里使用。我发现即使我的整个班级都有@available(iOS 10, *)
指令,当我在iOS 9设备上运行我的应用程序时,它会在启动时被杀死
"dyld: Library not loaded: /System/Library/Frameworks/Speech.framework/Speech".
我是否遗漏了某些内容,或者是否只能在部署目标为10的应用中使用Speech框架?
答案 0 :(得分:5)
答案 1 :(得分:1)
您需要使用
#if canImport(YourFramework)
import YourFramework
#endif
将框架设置为可选后,而不是现在可用@: