访问范围外的 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()
}
我正在使用 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()
}