OptionalEnvironmentObject(可选的环境对象)

一种安全访问 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())
    }
}

安装

Swift Package Manager(Swift 包管理器)

将以下内容添加到您的 "Package.swift" 文件中的 dependencies 数组中

.package(url: "https://github.com/Tunous/OptionalEnvironmentObject", .upToNextMajor(from: "1.0.0"))

或者,在 Xcode 中,将 https://github.com/Tunous/OptionalEnvironmentObject 添加到任何项目的 Swift 包列表中。