web-dev-qa-db-ja.com

Swiftクロージャで複数の引数を弱くキャプチャするにはどうすればよいですか?

Swiftクロージャで複数の引数を弱くキャプチャする方法はありますか?これが1つの引数を弱くキャプチャする構文であることを私は知っています:

{ [weak arg]
    arg.doSomething()
}

弱くキャプチャしたい2つのオブジェクトに対してこれを行うにはどうすればよいですか?

25
banDedo

From Expressions in "The Swift Programming Language"(強調を追加):

クロージャ式
.。
クロージャ式は、キャプチャリストを使用して、周囲のスコープからキャプチャする値を明示的に指定できます。キャプチャリストは、パラメータのリストの前に、角かっこで囲まれたカンマ区切りリストとして書き込まれます。キャプチャリストを使用する場合は、パラメータ名、パラメータタイプ、および戻り値の型を省略した場合でも、inキーワードも使用する必要があります。

例:

{
    [weak arg1, weak arg2] in 
    // ...
}
69
Martin R