Swift如何将String从类转换为@State String变量?

时间:2020-08-04 12:32:21

标签: ios swift swiftui

如何在我的View中将此变量从类转换为@State变量?我现在遇到异常:

无法将“绑定”类型的值分配给“字符串”类型

在我的视图内:


 struct ContentView: View {

    //Error private members
    @State var alert = false
    @State var error = ""

    @EnvironmentObject var manager: HttpAuth

    func verify(){
    //Cannot assign value of type Binding<String> to type String
     self.error = $manager.error

   }
}

在我的HttpAuth班上


    class HttpAuth: ObservableObject{
    
        //Error private members
        var alert = false
        var error: String = ""
    
        ..
    }

1 个答案:

答案 0 :(得分:2)

这里不需要绑定,@State是一个属性包装器,因此像属性一样分配

func verify(){
   self.error = manager.error   // no $
}

注意:实际上,您可以直接使用manager.error,而无需重新映射以提供状态,只需将其设置为@Published

class HttpAuth: ObservableObject{

    //Error private members
    var alert = false
    @Published var error: String = ""

唯一的警告(!),您必须在主队列上修改此已发布的error ,然后View内部的所有用法都会自动更新。