一种安全访问 SwiftUI EnvironmentObject 的方式,避免应用程序崩溃。
import SwiftUI
import OptionalEnvironmentObject
final class MyObject: ObservableObject {}
struct ContentView: View {
@EnvironmentObject.Optional private var object: MyObject?
var body: some View {
if let object {
Text("Found: \(object)")
} else {
Text("Not found")
}
}
}
#Preview {
VStack {
ContentView()
ContentView()
.optionalEnvironmentObject(MyObject())
}
}
将以下内容添加到您的 "Package.swift" 文件中的 dependencies 数组中
.package(url: "https://github.com/Tunous/OptionalEnvironmentObject", .upToNextMajor(from: "1.0.0"))
或者,在 Xcode 中,将 https://github.com/Tunous/OptionalEnvironmentObject 添加到任何项目的 Swift 包列表中。