Ячейки анализа таблицы просмотра пустые
import UIKit
import Parse
class AmbianceTableViewTableViewController: UITableViewController, UISearchBarDelegate, UISearchDisplayDelegate{
//variables
var name = [String]()
var carBrand = [String]()
var carEngine = [String]()
//Properties
@IBOutlet var searchBar: UISearchBar!
override func viewDidLoad() {
super.viewDidLoad()
//Query data for Table
tableView.delegate = self
tableView.dataSource = self
let query = PFQuery(className: "Make")
query.findObjectsInBackground(block: { (objects, error) in
if error != nil {
print(error)
}else{
if let make = objects {
for objects in make {
if let make = objects as? PFObject {
let name = make["name"] as! String
print(make["name"])
}
}
}
}
})
self.tableView.reloadData()
}
// self.clearsSelectionOnViewWillAppear = false
// self.navigationItem.rightBarButtonItem = self.editButtonItem()
// MARK: - Table view data source
override func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return name.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "Ambiance", for: indexPath) as! ViewControllerTableViewCell
cell.venueNameLabel.text = name[indexPath.row]
return cell
}
}
1 ответ
Вы никогда ничего не добавляете в свой массив имен, поэтому ваш tableView никогда не будет показывать никаких данных. Кроме того, когда запрос завершен, вам нужно вызвать reloadData. Вы в настоящее время звоните после асинхронного вызова, который будет означать, что вы перезагружаете свою таблицу до того, как данные будут возвращены.
Измените свой запрос на это,
let query = PFQuery(className: "Make")
query.findObjectsInBackground(block: { [weak self] (objects, error) in
if error != nil {
print(error)
}else{
if let allCarMakes = objects {
for carMake in allCarMakes {
if let make = carMake["name"] as? String {
self?.name.append(make)
}
}
}
}
DispatchQueue.main.async {
self?.tableView.reloadData()
}
})