質問編集履歴

2

code、内容の修正

2020/08/12 08:32

投稿

Narikura
Narikura

スコア6

test CHANGED
File without changes
test CHANGED
@@ -74,42 +74,44 @@
74
74
 
75
75
       // ✊, ✌️, ✋のボタンに割当
76
76
 
77
+     selectbutton.isEnabled = false
78
+
79
+ let Button = Int(sender.tag)
80
+
81
+ guard
82
+
83
+ let youHand = hand(rawValue: Button),
84
+
85
+ let cpHand = hand(rawValue: Int.random(in: 0...2)) else {
86
+
87
+ return
88
+
89
+ }
90
+
77
91
 
78
92
 
79
- let Button = Int(sender.tag)
93
+ if timer == nil {
80
-
81
- guard
94
+
82
-
83
- let youHand = hand(rawValue: Button),
84
-
85
- let cpHand = hand(rawValue: Int.random(in: 0...2)) else {
95
+ timer = Timer.scheduledTimer(timeInterval: 0.1, target: self, selector: #selector(changeImage), userInfo: nil, repeats: true)
86
-
87
- return
96
+
88
-
89
- }
97
+ }
98
+
99
+ DispatchQueue.main.asyncAfter(deadline: .now() + 1.99) {
100
+
101
+ self.timer?.invalidate()
102
+
103
+ self.janken(youHand: youHand, cpHand: cpHand)
104
+
105
+ self.result(youHand: youHand, cpHand: cpHand)
106
+
107
+ self.timer = nil
108
+
109
+        self.selectbutton.isEnabled = true
110
+
111
+     }
90
112
 
91
113
 
92
114
 
93
- if timer == nil {
94
-
95
- timer = Timer.scheduledTimer(timeInterval: 0.1, target: self, selector: #selector(changeImage), userInfo: nil, repeats: true)
96
-
97
- }
98
-
99
- DispatchQueue.main.asyncAfter(deadline: .now() + 1.99) {
100
-
101
- self.timer?.invalidate()
102
-
103
- self.janken(youHand: youHand, cpHand: cpHand)
104
-
105
- self.result(youHand: youHand, cpHand: cpHand)
106
-
107
- self.timer = nil
108
-
109
- }
110
-
111
-
112
-
113
115
  }
114
116
 
115
117
 
@@ -184,12 +186,34 @@
184
186
 
185
187
  selectbutton.isEnabled = false
186
188
 
187
- を使ましたがよく分かりませんでし
188
-
189
-
190
-
191
- 具体的には、上記のcode記述した、if構文より条件分けを行うのか思いますが、どの場所に、のようにコード記述すれば良いかわからない状況です
192
-
193
-
194
-
195
- まだまだ初心者で自分も実装したいことと、そのためにどう試すのがいいのかがわからずあやふやな質問になっているかもしれませんがよろしくお願いいたします。
189
+ を使用しました。私の認識として上記のプログラムは、ある関数や動作と同じタイミング挿入てボタンを無効化し、その後の関数や動作と同じタイミングで挿入し有効化するという使い方だと思っています
190
+
191
+
192
+
193
+ 今回場合jankenAction関数で✊✌️✋のいずれかのボタンした時に✊✌️✋のボタンを無効化しDispatchQueueで2秒後遅延処理を行うと宣言した場所に有効化するというメソッドを実装するため上記ソースコードのように、jankenAction関数の冒頭に selectbutton.isEnabled = false挿入し、DispatchQueueのところにtrueを挿入しました
194
+
195
+
196
+
197
+
198
+
199
+ ### 発生している問題・エラーメッセージ
200
+
201
+
202
+
203
+ ```
204
+
205
+ selector sent to instance 0x60000304f1e0"
206
+
207
+ ```
208
+
209
+ そもそも、私の認識が正しいかも定かではありませんが、このようなエラーが出てしまいました。
210
+
211
+
212
+
213
+
214
+
215
+ ### 補足情報(FW/ツールのバージョンなど)
216
+
217
+
218
+
219
+ 解決策と、今回のエラーコードの意味について教えていただけると幸いです。よろしくお願いいたします。

1

code、内容の修正

2020/08/12 08:32

投稿

Narikura
Narikura

スコア6

test CHANGED
File without changes
test CHANGED
@@ -71,6 +71,8 @@
71
71
 
72
72
 
73
73
  @IBAction func jankenAction(_ sender: UIButton) {
74
+
75
+      // ✊, ✌️, ✋のボタンに割当
74
76
 
75
77
 
76
78
 
@@ -183,3 +185,11 @@
183
185
  selectbutton.isEnabled = false
184
186
 
185
187
  を使いましたがよく分かりませんでした。
188
+
189
+
190
+
191
+ 具体的には、上記のcodeを記述した後、if構文により条件分けを行うのかと思いますが、どの場所に、どのようにコードを記述すれば良いかわからない状況です。
192
+
193
+
194
+
195
+ まだまだ初心者で自分も実装したいことと、そのためにどう試すのがいいのかがわからずあやふやな質問になっているかもしれませんがよろしくお願いいたします。