gpt4 book ai didi

ios - 如何将来自 dataTaskWithUrl 的响应存储在其他变量中?

转载 作者:行者123 更新时间:2023-11-28 11:07:42 24 4
gpt4 key购买 nike

我正在尝试使用完成处理程序将数据存储在 dataTaskWithUrl 之外,以便与其他方法一起使用。

这是我的代码:

import UIKit
import XCPlayground

XCPSetExecutionShouldContinueIndefinitely(true)

let session = NSURLSession(configuration: NSURLSessionConfiguration.defaultSessionConfiguration())
var jsonData : NSDictionary
let urlString = "<my_rest_api>"
session.dataTaskWithURL(NSURL(string: urlString)!, completionHandler: {
(taskData, taskResponse, taskError) -> Void in
var jsonReadError: NSError?
var jsonResult = try! NSJSONSerialization.JSONObjectWithData(taskData!, options: NSJSONReadingOptions.MutableContainers) as! NSDictionary

var resp=jsonResult["response"] as! String
var data: NSData = resp.dataUsingEncoding(NSUTF8StringEncoding)!
var jsonResultNested = try! NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers) as! NSArray
dispatch_async(dispatch_get_main_queue(), {
jsonData = jsonResultNested[0] as! NSDictionary
})

}).resume()

当我在外面打印 jsonData 时,它说

error: variable 'jsonData' used before being initialized

如何使用完成处理程序执行此操作?

最佳答案

仔细阅读,你明白了jsonData还没有初始化的问题。

jsonData 仅在您的代码中的异步 block 中初始化。为了解决您的问题,请为属性设置默认值,例如 var jsonData = [String: String]()

关于ios - 如何将来自 dataTaskWithUrl 的响应存储在其他变量中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36745933/

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