从函数到数组的数据在swift 3中不起作用

时间:2017-06-07 06:34:40

标签: arrays json function swift3

我可以获取JSON数据,但我无法将JSON数据添加到abcArr。我已计算abcArr中的0女巫为viewDidLoad()

我在下面复制编码。

感谢您的帮助。

我的编码:

class MapDetailViewController: UIViewController {
    var abcArr = [String]()

    override func viewDidLoad() {
        super.viewDidLoad()
        getInfo()
        print("1: \(abcArr.count)")//output = 0
    }

    func getInfo() {
        //MARK: get News data JSON
        jsonURL = "http://json/abc.json"

        if let url = NSURL(string: jsonURL) {
            URLSession.shared.dataTask(with: url as URL, completionHandler: { (data, response, error) in
                if let error = error {
                    print("Error: \(error.localizedDescription)")
                } else {
                    if let data = data {
                        let json = JSON(data: data)
                        let jsonReturn = json["return"]
                        let abc = jsonReturn[i]["Lat"]
                        abcArr.append(abc)      
                    } else {
                        print("no JSON data")
                    }
                }
            }).resume()
            print("2: \(abcArr.count)")//output = 0
        }
    }
}

1 个答案:

答案 0 :(得分:0)

感谢您解决Vadian。

将行打印(abcArr.count)放在完成处理程序的末尾。

class MapDetailViewController: UIViewController {
     var abcArr = [String]()

    override func viewDidLoad() {
        super.viewDidLoad()
        getInfo()
    }

    func getInfo() {
        //MARK: get News data JSON
        jsonURL = "http://json/abc.json"

        if let url = NSURL(string: jsonURL) {
            URLSession.shared.dataTask(with: url as URL, completionHandler: { (data, response, error) in
                if let error = error {
                    print("Error: \(error.localizedDescription)")
                } else {
                    if let data = data {
                        let json = JSON(data: data)
                        let jsonReturn = json["return"]
                        let abc = jsonReturn[i]["Lat"]
                        abcArr.append(abc)      
                    } else {
                        print("no JSON data")
                    }
                    print("1: \(abcArr.count)")// display abcArr of count
                }
            print("2: \(abcArr.count)")// display abcArr of count
            }).resume()
        }
    }
}

我的JSON:

{
    return: [{
        lat: "1111",
    }]
}