我有一个需要iOS和tvOS使用的共享框架,但我想有选择地导入仅适用于iOS的框架(CoreTelephony)。快速的语法说你可以添加一个属性,但这不起作用:
@available(iOS 10.0, *) import CoreTelephony
这根本不受支持吗?我是否需要继承子类才能导入iOS特定的框架?
答案 0 :(得分:6)
对于Swift< = 4.0,您可以使用os()
配置测试功能:
#if os(iOS)
import CoreTelephony
#endif
您还必须打包使用CoreTelephony
的代码。
os()
的所有可用测试均为:macOS
,iOS
,watchOS
,tvOS
,Linux
,Windows
,和FreeBSD
。
对于Swift> = 4.1,您还可以使用canImport()
:
#if canImport(CoreTelephony)
import CoreTelephony
#endif