在 table 视图单元格中显示列数据 - 为什么我的 table 单元格没有被创建和填充?
Display column data in tableview cell - Why aren't my table cells being created and populated?
当我构建 运行 时,我的 table 是空的。我已经验证了我与数据库的连接。当我对数据进行硬编码时,它工作得很好。我假设我的代码实现不正确,因为这是我第一次使用 Parse。
import UIKit
class ListSubViewController: UITableViewController {
var vendorArray : NSMutableArray = []
override func viewDidLoad() {
super.viewDidLoad()
let query = PFQuery (className: "Vendor")
query.order(byAscending: "ID")
query.findObjectsInBackground {
(objects:[PFObject]?, error:Error?) -> Void in
if error == nil {
if let objects = objects {
print("\(objects.count) vendors are listed")
for object in objects {
self.vendorArray.add(object)
}
self.tableView.reloadData()
}
} else {
print("There is an error")
}
}
}
override func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.vendorArray.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! TableViewCell
let vendorObjects = vendorArray[indexPath.row] as! PFObject
let vendorName = vendorObjects["vendorName"] as! String
let image = vendorObjects["Image"] as! PFFile
cell.vendorLabel.text = vendorName
image.getDataInBackground(block: {
(result, error) in
cell.vendorImage.image = UIImage(data: result!)
})
self.tableView.reloadData()
return cell
}
放这条线
self.tableView.reloadData()
在 cellForRowAt
内部导致递归 - 无休止的过程,因为 table 为每个单元格创建重新加载
当我构建 运行 时,我的 table 是空的。我已经验证了我与数据库的连接。当我对数据进行硬编码时,它工作得很好。我假设我的代码实现不正确,因为这是我第一次使用 Parse。
import UIKit
class ListSubViewController: UITableViewController {
var vendorArray : NSMutableArray = []
override func viewDidLoad() {
super.viewDidLoad()
let query = PFQuery (className: "Vendor")
query.order(byAscending: "ID")
query.findObjectsInBackground {
(objects:[PFObject]?, error:Error?) -> Void in
if error == nil {
if let objects = objects {
print("\(objects.count) vendors are listed")
for object in objects {
self.vendorArray.add(object)
}
self.tableView.reloadData()
}
} else {
print("There is an error")
}
}
}
override func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.vendorArray.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! TableViewCell
let vendorObjects = vendorArray[indexPath.row] as! PFObject
let vendorName = vendorObjects["vendorName"] as! String
let image = vendorObjects["Image"] as! PFFile
cell.vendorLabel.text = vendorName
image.getDataInBackground(block: {
(result, error) in
cell.vendorImage.image = UIImage(data: result!)
})
self.tableView.reloadData()
return cell
}
放这条线
self.tableView.reloadData()
在 cellForRowAt
内部导致递归 - 无休止的过程,因为 table 为每个单元格创建重新加载