Я использую swift (2.3)
, и у меня возникла проблема с доступом к переменной, которую я создал.Доступ к данным класса за пределами области видимости
Я пытаюсь получить обновленное содержание namesArray
Я могу получить данные в формате JSON (через readableJSON
) из моего класса, через 1) let.pdf = getData..
, а затем 2) pfd.getPetData...
Но я не могу понять, как накормить мою недавно заполненную namesArray
за пределами этой «сферы» (это правильный термин?), Чтобы я мог получить доступ к ней за пределами super.viewDidLoad
.
В конце концов, я хотел бы кол-массива, чтобы перейти к:
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return namesArray.count
}
Вот площадь ядра, минуты материал Tableview.
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()
}
}
Действительно оценил бы чьи-либо мысли.
Вам нужно добавить 'IBOutlet' вашего' TableView' из раскадровки в ваш класс. Только тогда вы сможете перезагрузить и выполнить операции над таблицей. – Dershowitz123
Когда я добавил это, я получаю сообщение об ошибке: '«Неоднозначная ссылка на член „Tableview (_: numberOfRowsInSection :)“»' бы добавить «я»: –
Как я уже сказал, Вам нужно для добавления 'IBOutlet' вашего' TableView' в ваш класс. – Dershowitz123