有没有办法Swift根据运行时iOS版本有条件地导入框架?
特别是,我有一个部署目标为的应用程序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".
Run Code Online (Sandbox Code Playgroud)
我是否遗漏了某些内容,或者是否只能在部署目标为10的应用中使用Speech框架?
您可以选择框架(来自Ray Wenderlicht的详细信息和图像):
这与您对@available的使用相结合,可以防止系统尝试将其加载到不可用的设备上.
你需要使用
#if canImport(YourFramework)
import YourFramework
#endif
Run Code Online (Sandbox Code Playgroud)
在将您的框架设置为可选之后,现在而不是 @available :-)