質問: sender as? UIButton else { return } ``` ### ご参考事項 環境は下記のとおりです。 MacBook Pro (15-inch, 2016) High Sierra OS10.13.6 Xcode Version 9.4 (9F1027a)Swift4 よろしくお願いします。
回答: 鍵ボタンが14個あるのに対して、鍵チェックで利用しているcount変数が1つしかありませんよね。 ケース1) ``` 1番目の鍵を押してロック。 => count = 1 1番目の鍵を押してロック解除。 => count = 2 【 count % 2 == 0 のため アラートが表示される 】 ``` ケース2) ``` 1番目の鍵を押してロック。 => count = 1 2番目の鍵を押してロック。 => count = 2 【 count % 2 == 0 のため アラートが表示されてしまう 】 ``` 今の実装を活かすのであれば、count変数も14個必要だと思います。 var counts: [Int] = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] ``` switch lockButtonTapped.tag { case 6: //最初のボタン if count[0] % 2 == 1 { // 省略 } else if count[0] % 2 == 0 { // 省略 case 7: //2番目のボタン if count[1] % 2 == 1 { // 省略 ``` いかがでしょうか? 後からボタンを押した回数が必要になるのであればNGなのですが、 鍵ボタンの状態はon/off しかないので、 ``` countが奇数だったらロック、偶数だったらロック解除 ``` よりは ``` isLockがtrueだったらロック、falseだったらロック解除 ``` など bool型を使った方が良いかもしれませんね。