win*_*ton 34 closures uitableview swift
我正在尝试将查询结果的数量存储到一个整数中,以便我可以使用它来确定表中的行数.但是,我收到以下错误:Variable 'numberOfGames' captured by a closure before being initialized'在线query.findObjectsInBackgroundWithBlock{.
我也收到其他错误Variable 'numberOfGames' used before being initialized就行了return numberOfGames.
这是包含两个错误的函数:
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int
{
var user: PFUser!
var numberOfGames: Int
//...query code....removed to make it easier to read
var query = PFQuery.orQueryWithSubqueries([userQuery, userQuery2, currentUserQuery, currentUserQuery2])
query.findObjectsInBackgroundWithBlock{
(results: [AnyObject]?, error: NSError?) -> Void in
if error != nil {
println(error)
}
if error == nil{
if results != nil{
println(results)
numberOfGames = results!.count as Int
}
}
}
return numberOfGames
}
Run Code Online (Sandbox Code Playgroud)
Ica*_*aro 34
在闭包中使用变量之前,需要初始化变量:
如果使用闭包来初始化属性,请记住在执行闭包时尚未初始化实例的其余部分.这意味着您无法从闭包中访问任何其他属性值,即使这些属性具有默认值.您也不能使用隐式self属性,也不能调用任何实例的方法.
该命令var numberOfGames: Int只是声明它初始化你可以使用var numberOfGames = Int()或var numberOfGames:Int = 0
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int
{
var user: PFUser!
var numberOfGames:Int = 0
var query = PFQuery.orQueryWithSubqueries([userQuery, userQuery2, currentUserQuery, currentUserQuery2])
query.findObjectsInBackgroundWithBlock{
(results: [AnyObject]?, error: NSError?) -> Void in
if error != nil {
println(error)
}
if error == nil{
if results != nil{
println(results)
numberOfGames = results!.count as Int
}
}
}
return numberOfGames
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
25584 次 |
| 最近记录: |