我有一个用Swift编写的iOS应用程序,需要在iOS 13及更高版本上运行。
问题:
- 我有两个框架,一个只存在于iOS 13 SDK,另一个只存在于iOS 14 SDK
- 对于每个框架,我需要实现一个扩展来执行特定的任务
:
- 我如何有选择性地导入正确的框架取决于它是否在iOS 13或iOS 14上运行?我研究了
@available
,canImport
,#if defined
,但没有一个做我上面描述的 - 我怎么能去实现扩展,使正确的扩展将被使用和编译器不对我大喊大叫?
据我所知,您无法根据特定的操作系统版本导入,但您可以使用canImport
。
#if canImport(UIKit)
// UIKit code
#elseif canImport(AppKit)
// AppKit code
#else
// Other Code
#endif
canImport的工作方式是,如果模块存在于你的搜索路径中,这是真的。- Swift论坛