gpt4 book ai didi

ios - 如何将闭包函数的返回值设置为变量?

转载 作者:搜寻专家 更新时间:2023-11-01 06:27:30 24 4
gpt4 key购买 nike

我有一个闭包函数,可以从网络服务器上传和返回数据。以下代码将打印我想要的值。

  loadData1(onCompletion: { (json) in
print(json)
})

我的问题是我需要将打印值设置为等于一个变量以在函数外部使用。我试过这个:

  let x = loadData1(onCompletion: { (json) in
return json
})

但我收到警告“常量‘x’推断为类型‘()’,这可能是意外的”并且 x 的值等于“()”。作为引用,json 的类型是 [[String:String]]。

编辑:目前有这个

var x = [[String: String]]()
override func viewDidLoad() {
super.viewDidLoad()
loadData1(onCompletion: { (json) in
self.x = json
})
print(x)
}

它正在打印“[]”。

最佳答案

尝试在闭包内设置 x 变量的值:

loadData1(onCompletion: { (json) in
x = json
})

在您使用闭包初始化的方法变量 x 中,这就是您收到警告的原因。

在执行闭包之前,变量 x 具有默认值 var x = [[String: String]]()如果您未提供默认值和声明,则仍未解决。

关于ios - 如何将闭包函数的返回值设置为变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52116760/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com