我想从swift的解析函数返回一个值,但我遇到了一个问题…当我尝试返回函数中的值时,我得到"无法将类型为'Int'的值转换为闭包结果类型'()'">
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
{
let query = PFQuery(className: "people")
query.countObjectsInBackground
{ (count, error) in
return Int(count)
}
}
您正在返回一个闭包,并且numberOfRowsInSection
接受Int
。
我不太确定背后的逻辑是什么,但你可以做的是:
// declare this variable
var numberOfSections:Int?
// then inside a function or viewDidLoad
let query = PFQuery(className: "people")
query.countObjectsInBackground
{ (count, error) in
self.numberOfSections = Int(count)
// finally you force the tableView to reload
DispatchQueue.main.async {
self.tableView.reloadData()
}
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
{
return numberOfSections ?? 0
// maybe you want to return at least one section when
// you var is nil so can can change it to ?? 1
}