I am trying to implement some code from parse.com and I notice a keyword in
after the void.
I am stumped what is this ? The second line you see the Void in
PFUser.logInWithUsernameInBackground("myname", password:"mypass") {
(user: PFUser?, error: NSError?) -> Void in
if user != nil {
// Do stuff after successful login.
} else {
// The login failed. Check error to see why.
}
}
The docs don't document this. I know the in
keyword is used in for
loops.
Anyone confirm?
In a named function, we declare the parameters and return type in the func
declaration line.
func say(s:String)->() {
// body
}
In an anonymous function, there is no func
declaration line - it's anonymous! So we do it with an in
line at the start of the body instead.
{
(s:String)->() in
// body
}
(That is the full form of an anonymous function. But then Swift has a series of rules allowing the return type, the parameter types, and even the parameter names and the whole in
line to be omitted under certain circumstances.)
*
The start of the closure’s body is introduced by the in keyword. This
keyword indicates that the definition of the closure’s parameters and
return type has finished, and the body of the closure is about to
begin.
*
Source:
https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Closures.html
Closure expression syntax has the following general form: