知道只有在 iOS 版本超过 iOS 13 的情况下我才能导入 SwiftUICharts 框架吗?我通过 File > Swift Package > add package dependency 添加了这个框架。我的应用目标必须是 iOS 10。
我将此框架导入到 swiftui 控制器中,该控制器只会显示目标是否超过 iOS 14,因此可以在那里使用它。但我不知道怎么做。在这种情况下,一个简单的 @available 不起作用。
编辑。这是我的代码:
分析新控制器:
#if !arch(arm)
import SwiftUI
@available(iOS 14, *)
struct AnalyticsNew: View {
var body: some View {
Home()
}
}
@available(iOS 14, *)
struct AnalyticsNew_Previews: PreviewProvider {
static var previews: some View {
AnalyticsNew()
}
}
@available(iOS 14, *)
struct Home : View {
//... some code
}
#endif
根据 iOS 版本匹配正确控制器的 AnalyticsView 控制器:
#if canImport(SwiftUI)
import SwiftUI
#endif
import UIKit
class AnalyticsView: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let child = createViewController()
addChild(child)
child.view.autoresizingMask = [.flexibleWidth, .flexibleHeight]
child.view.frame = view.bounds
view.addSubview(child.view)
child.didMove(toParent: self)
}
func createViewController() -> UIViewController {
if #available(iOS 14, *) {
#if !arch(arm) //compatible SwiftUI IOS <10
return UIHostingController(rootView: AnalyticsNew())
#else
return AnalyticsOld()
#endif
} else {
return AnalyticsOld()
}
}
}