首页 > 解决方案 > 返回可编码数组的结果

问题描述

试图弄清楚如何从我的 func 返回我的可编码 json 数据的结果。

class Service {
static let shared = Service()
let BASE_URL = "xxx"

func fetchClient(completion: @escaping ([Client]) -> ()) {
    var clientArray = [Client]()

    guard let url = URL(string: BASE_URL) else { return }

    URLSession.shared.dataTask(with: url) { (data, response, error) in

        // handle error
        if let error = error {
            print("Failed to fetch data with error: ", error.localizedDescription)
            return
        }

        guard let data = data else {return}

        do {
            let clients = try JSONDecoder().decode([Client].self, from: data)
            clientArray.append(clients)????

        } catch let error {
            print("Failed to create JSON with error: ", error.localizedDescription)
        }
    }.resume()
}
}

我知道我不能clients直接附加到clientArray,因为它本身就是一个数组,但我不确定如何解压它以便函数正确返回数据?谢谢

标签: swift

解决方案


你不需要var clientArray = [Client]()

替换clientArray.append(clients)????completion(clients)


推荐阅读