• 主页
  • 转义闭包捕获变异的“self”参数,Firebase

转义闭包捕获变异的“self”参数,Firebase

我有以下代码,如何才能在不将struct更改为类的情况下完成此操作。转义闭包捕获变异的“self”参数,

struct RegisterView:View {
    var names = [String]()

    private func LoadPerson(){
        FirebaseManager.fetchNames(success:{(person) in
        guard let name = person.name else {return}
        self.names = name //here is the error
    }){(error) in
        print("Error: \(error)")
    }

    init(){
        LoadPerson()
    }a
    
    var body:some View{
        //ui code
    }
}

Firebasemanager.swift

struct FirebaseManager {
    
    func fetchPerson(
        success: @escaping (Person) -> (),
        failure: @escaping (String) -> ()
    ) {
        Database.database().reference().child("Person")
        .observe(.value, with: { (snapshot) in
            if let dictionary = snapshot.value as? [String: Any] {
                success(Person(dictionary: dictionary))
            }
        }) { (error) in
            failure(error.localizedDescription)
        }
    }
}

转载请注明出处:http://www.jubohx.com/article/20230505/2186302.html