我有一个从viewDidLoad方法调用的函数

func loadData()
{
    eventsData.removeAllObjects()

    var query = PFQuery(className:"Events")
    query.findObjectsInBackgroundWithBlock {
        (objects: [AnyObject]?, error: NSError?) -> Void in

        if error == nil {
            // The find succeeded.
            println("Successfully retrieved \(objects!.count) scores.")
            // Do something with the found objects
            if let objects = objects as? [PFObject] {
                for object in objects {
                    self.eventsData.addObject(object)
                }
                println("The Events data has \(self.eventsData.count) scores.")
            }
        } else {
            // Log details of the failure
            println("Error: \(error!) \(error!.userInfo!)")
        }
    }


这将成功地使用3个PFObject填充eventsData NSMutableArray。

但是,这将产生0行

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

    println("!!!!!!!!!The Events data has \(self.eventsData.count) scores.!!!!!")
    return self.eventsData.count

}


所以在println的帮助下它显示:
!!!!!!!!!活动数据有0分。!!!​​!!
成功取得3分。
活动数据有3个得分。

所以我发现问题是它在填充数组之前初始化了0个tableview行,这就是为什么table view不显示任何数据的原因,但是我正在寻找一种解决方案但找不到任何数据,任何建议吗?

最佳答案

如果您还没有一个,则需要为UITableView创建一个IBOutlet,然后重新加载它的数据

if let objects = objects as? [PFObject] {
            for object in objects {
                self.eventsData.addObject(object)
            }
            // Reload table here
            println("The Events data has \(self.eventsData.count) scores.")
        }

09-26 19:05
查看更多