gpt4 book ai didi

ios - 在 SWIFT UI 控件中使用 JSON 数据

转载 作者:行者123 更新时间:2023-11-28 11:16:02 25 4
gpt4 key购买 nike

我需要使用来自 JSON 网络服务的数据来更新 SWIFT 应用程序中的控件。我可以毫无问题地获取数据,但我似乎无法从任务 block 内访问 UI 控件,也无法让 JSON 在任务 block 外保留。我四处搜寻但没有找到答案。这是我的测试代码。当前结果是 value1Result 在 task 内部有值,但在外部为 nil。提前致谢。

    var jsonResult:NSDictionary!
var value1Result:String!

let task = NSURLSession.sharedSession().dataTaskWithURL(url!) { data, response, error in
var error: NSError?
jsonResult = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.AllowFragments, error: &error)!
as! Dictionary<String, AnyObject>
println(jsonResult)

if let value1 = jsonResult["value1"] {
println(value1)
value1Result = value1 as! String
}
}
task.resume()

self.textView1.text = value1Result

最佳答案

您可以使用异步 block 来更新主 UI

dispatch_async(dispatch_get_main_queue()) {
//Update your UI
}

用你的代码

let task = NSURLSession.sharedSession().dataTaskWithURL(url!) { data, response, error in
var error: NSError?
jsonResult = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.AllowFragments, error: &error)!
as! Dictionary<String, AnyObject>
println(jsonResult)

if let value1 = jsonResult["value1"] {
println(value1)
dispatch_async(dispatch_get_main_queue()) {
//Update your UI
value1Result = value1 as! String
self.yourtextview.text = value1 as! String
}
}
}
task.resume()

关于ios - 在 SWIFT UI 控件中使用 JSON 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31719547/

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