2016-05-03 16 views
2

タイトルは自明ですが、UIGestureRecognizersの配列にはaddGestureRecognizerなどのマッピング方法がありますか?私は配列上にvoid(返さない関数)をマップします

recognizers.map(MyWebOutlet.addGestureRecognizer) 

の変化と周りいじるが、内蔵のマップは、別の配列を返すために持っているので、値のいくつかの種類を返す関数を必要としてきました。 addGestureRecognizerを別の戻り関数にラップするだけでいいですか、それとも別の方法ですか?

+0

'recognizers.forEach {MyWebOutlet.addGestureRecognizer($ 0)}'? – Hamish

+0

$ 0 "匿名のクロージャ引数はクロージャに含まれていません"と思われます。 'recognizers.forEach(MyWebOutlet.addGestureRecognizer)'のような関数名を渡すだけでいいです。 おかげさまでヒープはforEachを意識していませんでした:) – TedNC

+0

なぜクロージャーバージョンがうまくいかなかったのでしょうか?あなたはちょうど関数を渡すことができます(私は通常、ちょっとだけ明示するためにクロージャーとして書き出す方が好きです) – Hamish

答えて

3

mapは、与えられた変換が適用された別の配列から(各要素を変換することによって)配列を返すように設計されています。したがって、渡される関数は当然変換された要素を返さなければなりません。

実際には要素を変換するわけではありません。関数の引数で使用するだけです。これを行うには、forEachを使用します。

recognizers.forEach(MyWebOutlet.addGestureRecognizer) 
+1

私の脳はグーグルで非常に鼓腸的で、私はつまずくことができませんでした'forEach'です。マップが配列関数への配列として設計されていることは分かっていましたが、関数を "マッピング"する以外はどの用語を使うのか分かりませんでした。もう一度ありがとう:) – TedNC

+0

喜んで:) – Hamish

関連する問題