【问题标题】:Display column data in tableview cell - Why aren't my table cells being created and populated?在表格视图单元格中显示列数据 - 为什么我的表格单元格没有被创建和填充?
【发布时间】:2018-12-21 14:43:18
【问题描述】:

当我构建并运行时,我的表是空的。我已经验证了我与数据库的连接。当我对数据进行硬编码时,它工作得很好。我认为我的代码实现不正确,因为这是我第一次使用 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
    }

【问题讨论】:

  • cellForRowAt内评论这个self.tableView.reloadData()
  • 啊。就是这样。谢谢!现在完美加载。

标签: ios swift uitableview pfquery


【解决方案1】:

放这条线

self.tableView.reloadData()

cellForRowAt 内部会导致一个递归 - 无休止的过程,因为每次创建单元格都会重新加载表格

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-12
    • 1970-01-01
    • 2020-05-19
    • 1970-01-01
    • 2011-05-07
    • 2020-05-04
    • 2022-01-21
    • 1970-01-01
    相关资源
    最近更新 更多