访问范围外的 class 数据

Accessing class data outside of scope

我正在使用 swift (2.3),但在访问我创建的变量时遇到了 运行 问题。

我正在尝试获取 namesArray

的更新内容

我能够从我的 class 获取 JSON 数据(通过 readableJSON),通过 1) let.pdf = getData..,然后 2) pfd.getPetData...

但我不太明白如何将我新填充的 namesArray 送回到 "scope" 之外(这个词正确吗?),以便我可以在 super.viewDidLoad.

最终,我希望数组的计数为:

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return namesArray.count    
}

这里是核心区,分表视图的东西。

import UIKit
import SwiftyJSON
class ViewController: UIViewController, UITableViewDelegate {

    var namesArray = [String]()
    override func viewDidLoad() {
        super.viewDidLoad() 

        let pfd = getData()

        pfd.getPetData { readableJSON in

            for (key,subJson) in readableJSON[]["data"] {
                let title = subJson["title"].string!
                namesArray.append(title) 
            } 
        }
        print("There are \(self.namesArray.count) items in namesArray now")
    }

    class getData {
        func getPetData(completion: (JSON) -> ()) {
            let url = NSURL(string: "<my_JSON_URL_HERE>
            let task = NSURLSession.sharedSession().dataTaskWithURL(url) { (data, response, error) -> Void in
            let readableJSON = JSON(data:data!)
            completion(readableJSON)
            }
            task.resume()

        }
    }

非常感谢任何人的想法。

ViewController 中添加 table 视图的 IBOutlet。在此处重新加载您的 table视图:

for (key,subJson) in readableJSON[]["data"] {
                let title = subJson["title"].string!
                namesArray.append(title) 
                self.tableView.reloadData()
            }