関数オブジェクトのライフサイクル Objective-CのblocksでもSwiftのクロージャでも、非同期な処理は関数オブジェクトをメソッド等に渡して非同期ハンドラとすることが多いです。 // なにかのクラスの中 func someTask() { let url = NSURL(string: "http://google.com")! NSURLSession.sharedSession().dataTaskWithURL(url) { data, response, error in // メソッド呼び出しの時、返り値を束縛する際にはselfをつけないとエラーとなる let aa = self.duplicateAndDoubled(1) } } func duplicateAndDoubled(elem: Int) -> [Int] { return [elem * 2, ele
![[Swift][Objective-C] 同期的な関数ハンドラを示す noescape ディレクティブ | DevelopersIO](https://cdn-ak-scissors.b.st-hatena.com/image/square/4b9b98d8423d1943cae402d21764bf51589e811b/height=288;version=1;width=512/https%3A%2F%2Fdevio2023-media.developers.io%2Fwp-content%2Fuploads%2F2014%2F11%2Flogo_swift_400x400.png)