Swiftをサンプルコードを見ながら学習していて、以下の記述に戸惑いました。
PHPhotoLibrary.requestAuthorization{ status in
if status == .Authorized {
self.prepareAnnotations()
}z
}
上記は、以下と同じ意味になります。
PHPhotoLibrary.requestAuthorization({ (status) -> Void in
if status == .Authorized {
self.prepareAnnotations()
}
})
後者の記述から、requestAuthorizationメソッドの引数にクロージャを渡している事が理解できました。
Swiftでは、最後の引数がクロージャである場合は、()内から追い出して、メソッド呼び出しの後ろの{}内に記述する事ができるようです。前者のコードの場合は引数が1つであるため、()すら不要となっています。