将非可选绑定分配给可选绑定

时间:2020-06-28 13:34:39

标签: binding swiftui optional

我有一个在其初始值设定项中需要绑定的视图,并返回该绑定是可选的另一个视图(Binding ?),但是我无法为其分配以下错误:

Cannot convert value of type 'Binding<Person>' to expected argument type 'Binding<Person?>?'

如何将我的非可选项目分配给可选项目?

完整代码:

struct PersonEditView: View {
    @Environment(\.managedObjectContext) var context: NSManagedObjectContext
    
    @ObservedObject var model: PersonViewModel
    
    init(_ editPerson: Binding<Person>) {
        self.model = PersonViewModel(editPerson: editPerson)
    }

    ...
}

public class PersonViewModel: ObservableObject {
    @Published var id: UUID?
    @Published var lastModified: Date?
    @Published var name: String?
    @Published var comment: String?
    
    @Binding var editPerson: Person?
            
    init(editPerson: Binding<Person?>? = nil) {
        self._editPerson = editPerson ?? .constant(nil)
        
        updateFromEditPerson()
    }
    
    private func updateFromEditPerson() {
        guard let editPerson = self.editPerson else { return }
        
        editPerson.updateViewModelFromObject(viewModel: self)
    }
}

0 个答案:

没有答案