首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在UI中获得结果(@escaping,completion)

如何在UI中获得结果(@escaping,completion)
EN

Stack Overflow用户
提问于 2020-10-21 05:07:30
回答 2查看 48关注 0票数 2

我有一个从DB读取数据的函数。这是一个带有“换行”的趣事。我应该如何在UI中声明一个变量,以获得我的结果。谢谢

代码语言:javascript
复制
class GetGarbageInfo {

    func getInfo(path: String, completion: @escaping (String) -> Void) {
        var result = ""
        
        let rootReference = Database.database().reference()
        let garbageReference = rootReference.child("GarbageInformation").child(path).child("body")
        
        garbageReference.observeSingleEvent(of: .value) { (DataSnapshot) in
            result = DataSnapshot.value as? String ?? "0"
        }
        completion(result)
    }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-10-21 05:08:28

如下所示:

代码语言:javascript
复制
getInfo(path: yourPath) { resultString in 
   /// resultString is the result!
}
票数 2
EN

Stack Overflow用户

发布于 2020-10-21 21:30:59

有了这段代码,效果很好。感谢大家的帮助)

代码语言:javascript
复制
struct ContentView: View {
    
    let garbageInfo = GetGarbageInfo() 
    
    @State var result = ""
    var body: some View {
        VStack {
            Text(result)
        }.onAppear {
            garbageInfo.getInfo(path: yourPath) {
                result = resultString
            }
        }
    }
}




class GetGarbageInfo {

func getInfo(path: String, completion: @escaping (String) -> Void) {
    var result = ""
    let rootReference = Database.database().reference()
    let garbageReference = rootReference.child("GarbageInformation").child(realPath).child("body")
    
    garbageReference.observeSingleEvent(of: .value) { (DataSnapshot) in
        result = DataSnapshot.value as? String ?? "0"
        completion(result)
    }   
}

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64453341

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档