Я много дней оглядывался и не могу понять, как заполнить данные JSON UITableView
. Я добавляю значения в массив recommendedTitles
и массив recommendedThumbnails
, который я могу связать между ними с помощью индекса.Swift: заполняет UITableView данными JSON?
Я не получаю никаких ошибок, просто не получаю никаких результатов. Я что-то упустил или сделал это неправильно?
class RecommendationCell: UITableViewCell {
@IBOutlet weak var recommendationTitle: UILabel!
}
class SongViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
var recommendedTitles = [String]()
var recommendedImages = [String]()
override func viewDidLoad() {
super.viewDidLoad()
let url = NSURL(string: "https://www.googleapis.com/youtube/v3/search?part=id&q=\(searchTerm)&maxResults=1&key=AIzaSyD7PxAoq0O5hUxx775l_E_mnowlU4cUfcI")
let task = NSURLSession.sharedSession().dataTaskWithURL(url!, completionHandler: {data, response, error -> Void in
if error != nil {
println(error)
} else {
let jsonResult = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: nil) as! NSDictionary
if let items = jsonResult["items"] as? NSArray {
// yada yada yada...
self.recommendedTitles.append(title)
self.recommendedImages.append(thumbnail)
})
newTask.resume()
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return recommendedTitles.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var songCell = tableView.dequeueReusableCellWithIdentifier("songCell", forIndexPath: indexPath) as! RecommendationCell
songCell.recommendationTitle.text = recommendedTitles[indexPath.row]
return songCell
}
}
Это действительно работало, однако для просмотра таблицы требуется всего 10 секунд для загрузки, если только я не начну вручную прокрутку. Затем он мгновенно появляется. Есть ли способ загрузить это, как только он будет готов? – chicobermuda
Эй, Дункан, могу ли я получить продолжение? – chicobermuda