从 swift 中的 Parse 函数返回值
Returning value from a Parse function in swift
我想 return 来自 swift 中的解析函数的值,但我 运行 遇到了问题...
当我尝试 return 函数中的值时,我得到“无法将类型 '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
}
我想 return 来自 swift 中的解析函数的值,但我 运行 遇到了问题... 当我尝试 return 函数中的值时,我得到“无法将类型 '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
}