BindBackstop Build

对于 SwiftUI 的 Binding,从一个可选类型的 Binding 创建一个非可选类型的 Binding,并提供一个默认值。

这就是全部代码。发布在这里只是因为我已经多次重复发明这个东西了。

extension Binding {
    init(_ source: Binding<Value?>, _ defaultValue: Value) {
        self.init(get: { () -> Value in
            return source.wrappedValue ?? defaultValue
        }) { (value) in
            source.wrappedValue = value
        }
    }
}

extension Binding {
    func with<T>(default v: T) -> Binding<T> where Value == T? {
        return Binding<T>(self, v)
    }
}

许可协议

BindBackstop 采用 MIT 许可证 发布。