I'm trying to store the number of results from a query into an integer so that I can use it to determine the number of rows in a table. However, I'm getting the following error: Variable 'numberOfGames' captured by a closure before being initialized'
on the line query.findObjectsInBackgroundWithBlock{
.
I also get another error Variable 'numberOfGames' used before being initialized
on the line return numberOfGames
.
Here's the function that contains the two errors:
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
}
You need to initialize the variable before use it inside a closure:
As per apple documentation
The command
var numberOfGames: Int
just declare it to initialize you can usevar numberOfGames = Int()
orvar numberOfGames:Int = 0