我有一个从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.")
}