gpt4 book ai didi

ios - 方法中实例变量的更改不反射(reflect)原始实例变量的更改

转载 作者:行者123 更新时间:2023-11-29 06:01:37 26 4
gpt4 key购买 nike

我正在构建一个应用程序,在其中通过服务器获取数据。我正在使用 Alamofire 来实现这个目的。我有一个名为 handleRequest(json: JSON) 的函数,它接受响应并将数据数组或 json 数据分配给实例变量。

// Instance Variable .   

var perm = JSON()

// Network

Alamofire.request(url, method: method , parameters: params ,encoding: URLEncoding.httpBody, headers: headers).responseJSON { response in

switch(response.result){
case .success(_):

let result = JSON(response.result.value!)
self.handleRequest(data: result)

break

case .failure(_):


break
}

}

// Request Handling

func handleRequest(data: JSON){

perm = JSON(data["permissions"])
print(perm)

}

使用handleRequest(json: JSON)函数一切都很好,perm变量按预期打印,但在其他函数中则不然。

我期望实例变量 var perm = JSON() 应该反射(reflect)其他函数中未发生的更改。

最佳答案

perm 变量将始终显示相同的数据,即如果您在调用 self.handleRequest(data: result) 之前访问 perm,您将得到 Empty json这是因为该变量是在闭包中设置的,一旦收到成功的 API 响应就会执行该变量。

printPerm()

Alamofire.request(url, method: method , parameters: params ,encoding: URLEncoding.httpBody, headers: headers).responseJSON { response in

switch(response.result){
case .success(_):
let result = JSON(response.result.value!)
self.handleRequest(data: result)
break
}

}

func handleRequest(data: JSON){

perm = JSON(data["permissions"])
print(perm) //API Json data

}

func printPerm() {
print(perm) //Empty Json

}

关于ios - 方法中实例变量的更改不反射(reflect)原始实例变量的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54614004/

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