This question already has an answer here:
- NSURLConnection sendAsynchronousRequest can't get variable out of closure 1 answer
- How do I return the response from an asynchronous call? 35 answers
I understand how completion handlers work, but im a bit confused on the syntax. Below is a function that, given a username, calls a parse query to find out the corresponding userId. The query ends after the function is returned (so it returns nil), which is why we need the completion handler. How do i implement it?
func getUserIdFromUsername(username: String) -> String {
var returnValue = String()
let query = PFQuery(className: "_User")
query.whereKey("username", equalTo: username)
query.findObjectsInBackgroundWithBlock { (objects, error) -> Void in
if let objects = objects {
for object in objects {
returnValue = object.objectId!
}
}
}
return returnValue
}
NOTE: I know examples similar to this exist, but they are either not swift, or extremely lengthy. This is a short and concise version that contains Parse.