对于 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 许可证 发布。