これはかなりシンプルですが、私は何か不足していると確信しています。変数内にコードブロックを保存する
私は以下を達成する方法を理解しようとしています。action
は、コードブロックを「ホールド」して、最終的にUIView.animate
(たとえば)内で実行する必要があります。
正しい方法はありますか? + action
閉鎖中に保持サイクルの面でself.
を使用することについて心配する必要がありますか?
サンプル機能:
func forward(_ sender : UIButton) {
var action : <Clousre of somekind?>
switch currentPosition
{
case 0 : action = { self.view.background = .red }
case 1 : action = { self.view.background = .blue }
default : fatalError("No current Position")
}
UIView.animate(withDuration: 1, animations: {
action
})
}
ありがとう! :)
しかし、私はスイッチのスコープ内にのみ割り当てているので、最初は外に宣言しています。彼のタイプは何ですか?別名varアクション:!? –
更新された回答。 – shallowThought
私にエラーを返します: 'Void!'を返すと予想されるクロージャーでの返品がありません。 –