質問編集履歴

4

誤字

2018/12/23 14:43

投稿

shu__n_p
shu__n_p

スコア20

test CHANGED
File without changes
test CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  ```error
6
6
 
7
- Cannot assign value of type '[ViewController.recordStruct]' to type '[recordViewController.recordStruct]'
7
+ Cannot assign value of type '[ViewController.recordStruct]' to type '[recordViewController.recordStruct2]'
8
8
 
9
9
  ```
10
10
 
@@ -44,7 +44,7 @@
44
44
 
45
45
  let recordVc : recordViewController = segue.destination as! recordViewController
46
46
 
47
- recordVc.recordArray = recordArray //エラー
47
+ recordVc.recordArray2 = recordArray //エラー
48
48
 
49
49
  }
50
50
 
@@ -56,7 +56,7 @@
56
56
 
57
57
  ```recordViewController
58
58
 
59
- struct recordStruct {
59
+ struct recordStruct2 {
60
60
 
61
61
  var record : Double = 0.0
62
62
 
@@ -66,17 +66,229 @@
66
66
 
67
67
 
68
68
 
69
+ var recordArray2 = [recordStruct2]()
70
+
71
+
72
+
73
+ ```
74
+
75
+
76
+
77
+ ###すべてのコードは下記の通りです。
78
+
79
+ ```ViewController
80
+
81
+
82
+
83
+ import UIKit
84
+
85
+
86
+
87
+ class ViewController: UIViewController {
88
+
89
+
90
+
91
+ @IBOutlet var buttonLabel: UILabel!
92
+
93
+ @IBOutlet var timerSecond: UILabel!
94
+
95
+ @IBOutlet var timerMSecond: UILabel!
96
+
97
+ @IBOutlet var gameButton: UIButton!
98
+
99
+ @IBOutlet var recordLabel: UILabel!
100
+
101
+
102
+
103
+ var timer : Timer!
104
+
105
+
106
+
107
+ var startTime = TimeInterval() //開始した時間
108
+
109
+
110
+
111
+ var currentTime = TimeInterval() //停止した時間
112
+
113
+
114
+
115
+ var time = TimeInterval() //currentTime - startTime
116
+
117
+
118
+
119
+
120
+
121
+
122
+
123
+ struct recordStruct {
124
+
125
+ var record : Double = 0.0
126
+
127
+ var recordtmp : Double = 0.0
128
+
129
+ }
130
+
131
+
132
+
133
+ //var recordstruct : recordStruct
134
+
69
135
  var recordArray = [recordStruct]()
70
136
 
71
137
 
72
138
 
139
+
140
+
141
+
142
+
143
+ var recordArraydepo = [Double]()
144
+
145
+
146
+
147
+ var count = 0
148
+
149
+
150
+
151
+ override func viewDidLoad() {
152
+
153
+ super.viewDidLoad()
154
+
155
+ }
156
+
157
+
158
+
159
+
160
+
161
+
162
+
163
+ @IBAction func gameButton(_ sender: Any) { //ゲームボタンが押された時
164
+
165
+
166
+
167
+ if count == 0{ //押すのが1回目なら
168
+
169
+ buttonLabel.text = "Stop!"
170
+
171
+
172
+
173
+ timer = Timer.scheduledTimer(withTimeInterval: 0.0001, repeats: true) { (Timer) in
174
+
175
+ self.timerSecond.text = String(Int.random(in: 1 ... 9))
176
+
177
+ self.timerMSecond.text = String(Int.random(in: 1...9999))
178
+
179
+ }
180
+
181
+
182
+
183
+ startTime = NSDate.timeIntervalSinceReferenceDate
184
+
185
+ count = 1
186
+
187
+ }else{//押すのが2回目なら
188
+
189
+
190
+
191
+ if timer != nil{
192
+
193
+ timer.invalidate()
194
+
195
+ }
196
+
197
+
198
+
199
+ currentTime = NSDate.timeIntervalSinceReferenceDate
200
+
201
+ time = currentTime - startTime
202
+
203
+
204
+
205
+ let second = Int (fmod(time, 60))
206
+
207
+ time -= TimeInterval(second)
208
+
209
+ let msecond = Int (time * 10000)
210
+
211
+
212
+
213
+ timerSecond.text = String(format: "%01d", second)
214
+
215
+ timerMSecond.text = String(format: "%04d", msecond)
216
+
217
+
218
+
219
+ buttonLabel.backgroundColor = UIColor.darkGray
220
+
221
+ self.gameButton.isEnabled = false
222
+
223
+
224
+
225
+ recordArray.append(recordStruct(record: (Double(timerSecond.text! + "." + timerMSecond.text!)!), recordtmp: (Double(timerSecond.text! + "." + timerMSecond.text!)! - 5.000)))
226
+
227
+
228
+
229
+ recordArray.sort(by: {$0.recordtmp < $1.recordtmp})
230
+
231
+
232
+
233
+ }
234
+
235
+ }
236
+
237
+
238
+
239
+ @IBAction func resetButton(_ sender: Any) {
240
+
241
+ buttonLabel.text = "Start!"
242
+
243
+ self.gameButton.isEnabled = true
244
+
245
+ buttonLabel.backgroundColor = UIColor.orange
246
+
247
+
248
+
249
+ timerSecond.text = "0"
250
+
251
+ timerMSecond.text = "0000"
252
+
253
+
254
+
255
+ count = 0
256
+
257
+ }
258
+
259
+
260
+
261
+ @IBAction func recordButton(_ sender: Any) {
262
+
263
+ performSegue(withIdentifier: "next", sender: nil)
264
+
265
+ }
266
+
267
+
268
+
269
+ override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
270
+
271
+ if segue.identifier == "next"{
272
+
273
+ let recordVc : recordViewController = segue.destination as! recordViewController
274
+
275
+ recordVc.recordArray2 = recordArray
276
+
277
+ }
278
+
279
+ }
280
+
281
+ }
282
+
283
+
284
+
285
+
286
+
73
- ```
287
+ ```
74
-
75
-
76
-
77
- ###すべてのコードは下記の通りです。
288
+
78
-
289
+
290
+
79
- ```ViewController
291
+ ```recordViewController
80
292
 
81
293
 
82
294
 
@@ -84,43 +296,27 @@
84
296
 
85
297
 
86
298
 
87
- class ViewController: UIViewController {
299
+ class recordViewController: UIViewController {
88
-
89
-
90
-
91
- @IBOutlet var buttonLabel: UILabel!
300
+
92
-
93
- @IBOutlet var timerSecond: UILabel!
301
+
94
-
95
- @IBOutlet var timerMSecond: UILabel!
302
+
96
-
97
- @IBOutlet var gameButton: UIButton!
98
-
99
- @IBOutlet var recordLabel: UILabel!
303
+ @IBOutlet var rank1: UILabel!
100
-
101
-
102
-
304
+
103
- var timer : Timer!
305
+ @IBOutlet var rank2: UILabel!
104
-
105
-
106
-
107
- var startTime = TimeInterval() //開始した時間
306
+
108
-
109
-
110
-
111
- var currentTime = TimeInterval() //停止した時間
307
+ @IBOutlet var rank3: UILabel!
112
-
113
-
114
-
308
+
115
- var time = TimeInterval() //currentTime - startTime
309
+ @IBOutlet var rank4: UILabel!
310
+
116
-
311
+ @IBOutlet var rank5: UILabel!
312
+
117
-
313
+ @IBOutlet var rank6: UILabel!
314
+
118
-
315
+ @IBOutlet var rank7: UILabel!
119
-
120
-
121
-
122
-
316
+
317
+
318
+
123
- struct recordStruct {
319
+ struct recordStruct2 {
124
320
 
125
321
  var record : Double = 0.0
126
322
 
@@ -130,21 +326,7 @@
130
326
 
131
327
 
132
328
 
133
- //var recordstruct : recordStruct
134
-
135
- var recordArray = [recordStruct]()
329
+ var recordArray2 = [recordStruct2]()
136
-
137
-
138
-
139
-
140
-
141
-
142
-
143
- var recordArraydepo = [Double]()
144
-
145
-
146
-
147
- var count = 0
148
330
 
149
331
 
150
332
 
@@ -152,208 +334,26 @@
152
334
 
153
335
  super.viewDidLoad()
154
336
 
155
- }
156
-
157
-
158
-
159
-
160
-
161
-
162
-
163
- @IBAction func gameButton(_ sender: Any) { //ゲームボタンが押された時
164
-
165
-
166
-
167
- if count == 0{ //押すのが1回目なら
168
-
169
- buttonLabel.text = "Stop!"
170
-
171
-
172
-
173
- timer = Timer.scheduledTimer(withTimeInterval: 0.0001, repeats: true) { (Timer) in
174
-
175
- self.timerSecond.text = String(Int.random(in: 1 ... 9))
176
-
177
- self.timerMSecond.text = String(Int.random(in: 1...9999))
178
-
179
- }
180
-
181
-
182
-
183
- startTime = NSDate.timeIntervalSinceReferenceDate
184
-
185
- count = 1
186
-
187
- }else{//押すのが2回目なら
188
-
189
-
190
-
191
- if timer != nil{
192
-
193
- timer.invalidate()
194
-
195
- }
196
-
197
-
198
-
199
- currentTime = NSDate.timeIntervalSinceReferenceDate
200
-
201
- time = currentTime - startTime
202
-
203
-
204
-
205
- let second = Int (fmod(time, 60))
206
-
207
- time -= TimeInterval(second)
208
-
209
- let msecond = Int (time * 10000)
210
-
211
-
212
-
213
- timerSecond.text = String(format: "%01d", second)
214
-
215
- timerMSecond.text = String(format: "%04d", msecond)
216
-
217
-
218
-
219
- buttonLabel.backgroundColor = UIColor.darkGray
220
-
221
- self.gameButton.isEnabled = false
222
-
223
-
224
-
225
- recordArray.append(recordStruct(record: (Double(timerSecond.text! + "." + timerMSecond.text!)!), recordtmp: (Double(timerSecond.text! + "." + timerMSecond.text!)! - 5.000)))
226
-
227
-
228
-
229
- recordArray.sort(by: {$0.recordtmp < $1.recordtmp})
230
-
231
-
232
-
233
- }
234
-
235
- }
236
-
237
-
238
-
239
- @IBAction func resetButton(_ sender: Any) {
240
-
241
- buttonLabel.text = "Start!"
242
-
243
- self.gameButton.isEnabled = true
244
-
245
- buttonLabel.backgroundColor = UIColor.orange
246
-
247
-
248
-
249
- timerSecond.text = "0"
250
-
251
- timerMSecond.text = "0000"
252
-
253
-
254
-
255
- count = 0
256
-
257
- }
258
-
259
-
260
-
261
- @IBAction func recordButton(_ sender: Any) {
262
-
263
- performSegue(withIdentifier: "next", sender: nil)
264
-
265
- }
266
-
267
-
268
-
269
- override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
270
-
271
- if segue.identifier == "next"{
272
-
273
- let recordVc : recordViewController = segue.destination as! recordViewController
274
-
275
- recordVc.recordArray = recordArray
276
-
277
- }
278
-
279
- }
280
-
281
- }
282
-
283
-
284
-
285
-
286
-
287
- ```
288
-
289
-
290
-
291
- ```recordViewController
292
-
293
-
294
-
295
- import UIKit
296
-
297
-
298
-
299
- class recordViewController: UIViewController {
300
-
301
-
302
-
303
- @IBOutlet var rank1: UILabel!
304
-
305
- @IBOutlet var rank2: UILabel!
306
-
307
- @IBOutlet var rank3: UILabel!
308
-
309
- @IBOutlet var rank4: UILabel!
310
-
311
- @IBOutlet var rank5: UILabel!
312
-
313
- @IBOutlet var rank6: UILabel!
314
-
315
- @IBOutlet var rank7: UILabel!
316
-
317
-
318
-
319
- struct recordStruct {
320
-
321
- var record : Double = 0.0
322
-
323
- var recordtmp : Double = 0.0
324
-
325
- }
326
-
327
-
328
-
329
- var recordArray = [recordStruct]()
330
-
331
-
332
-
333
- override func viewDidLoad() {
334
-
335
- super.viewDidLoad()
336
-
337
337
 
338
338
 
339
- rank1.text! = String(recordArray[0].record)
339
+ rank1.text! = String(recordArray2[0].record)
340
-
340
+
341
- rank2.text! = String(recordArray[1].record)
341
+ rank2.text! = String(recordArray2[1].record)
342
-
342
+
343
- rank3.text! = String(recordArray[2].record)
343
+ rank3.text! = String(recordArray2[2].record)
344
-
344
+
345
- rank4.text! = String(recordArray[3].record)
345
+ rank4.text! = String(recordArray2[3].record)
346
-
346
+
347
- rank5.text! = String(recordArray[4].record)
347
+ rank5.text! = String(recordArray2[4].record)
348
-
348
+
349
- rank6.text! = String(recordArray[5].record)
349
+ rank6.text! = String(recordArray2[5].record)
350
-
350
+
351
- rank7.text! = String(recordArray[6].record)
351
+ rank7.text! = String(recordArray2[6].record)
352
-
352
+
353
- }
353
+ }
354
-
354
+
355
- }
355
+ }
356
-
357
-
358
-
356
+
357
+
358
+
359
- ```
359
+ ```

3

コードの追加

2018/12/23 14:43

投稿

shu__n_p
shu__n_p

スコア20

test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,4 @@
1
- recordArrayを別のViewControllerに移そうとしたとろ下記のようなエラーが出てしまいました。構造体の配列は異なるViewContoroller間ではやり取りできないのでしょうか。ご回答感謝します。
1
+ #recordArrayを別のViewControllerに移そうとしたとろ下記のようなエラーが出てしまいました。構造体の配列は異なるViewContoroller間ではやり取りできないのでしょうか。ご回答感謝します。
2
2
 
3
3
 
4
4
 
@@ -71,3 +71,289 @@
71
71
 
72
72
 
73
73
  ```
74
+
75
+
76
+
77
+ ###すべてのコードは下記の通りです。
78
+
79
+ ```ViewController
80
+
81
+
82
+
83
+ import UIKit
84
+
85
+
86
+
87
+ class ViewController: UIViewController {
88
+
89
+
90
+
91
+ @IBOutlet var buttonLabel: UILabel!
92
+
93
+ @IBOutlet var timerSecond: UILabel!
94
+
95
+ @IBOutlet var timerMSecond: UILabel!
96
+
97
+ @IBOutlet var gameButton: UIButton!
98
+
99
+ @IBOutlet var recordLabel: UILabel!
100
+
101
+
102
+
103
+ var timer : Timer!
104
+
105
+
106
+
107
+ var startTime = TimeInterval() //開始した時間
108
+
109
+
110
+
111
+ var currentTime = TimeInterval() //停止した時間
112
+
113
+
114
+
115
+ var time = TimeInterval() //currentTime - startTime
116
+
117
+
118
+
119
+
120
+
121
+
122
+
123
+ struct recordStruct {
124
+
125
+ var record : Double = 0.0
126
+
127
+ var recordtmp : Double = 0.0
128
+
129
+ }
130
+
131
+
132
+
133
+ //var recordstruct : recordStruct
134
+
135
+ var recordArray = [recordStruct]()
136
+
137
+
138
+
139
+
140
+
141
+
142
+
143
+ var recordArraydepo = [Double]()
144
+
145
+
146
+
147
+ var count = 0
148
+
149
+
150
+
151
+ override func viewDidLoad() {
152
+
153
+ super.viewDidLoad()
154
+
155
+ }
156
+
157
+
158
+
159
+
160
+
161
+
162
+
163
+ @IBAction func gameButton(_ sender: Any) { //ゲームボタンが押された時
164
+
165
+
166
+
167
+ if count == 0{ //押すのが1回目なら
168
+
169
+ buttonLabel.text = "Stop!"
170
+
171
+
172
+
173
+ timer = Timer.scheduledTimer(withTimeInterval: 0.0001, repeats: true) { (Timer) in
174
+
175
+ self.timerSecond.text = String(Int.random(in: 1 ... 9))
176
+
177
+ self.timerMSecond.text = String(Int.random(in: 1...9999))
178
+
179
+ }
180
+
181
+
182
+
183
+ startTime = NSDate.timeIntervalSinceReferenceDate
184
+
185
+ count = 1
186
+
187
+ }else{//押すのが2回目なら
188
+
189
+
190
+
191
+ if timer != nil{
192
+
193
+ timer.invalidate()
194
+
195
+ }
196
+
197
+
198
+
199
+ currentTime = NSDate.timeIntervalSinceReferenceDate
200
+
201
+ time = currentTime - startTime
202
+
203
+
204
+
205
+ let second = Int (fmod(time, 60))
206
+
207
+ time -= TimeInterval(second)
208
+
209
+ let msecond = Int (time * 10000)
210
+
211
+
212
+
213
+ timerSecond.text = String(format: "%01d", second)
214
+
215
+ timerMSecond.text = String(format: "%04d", msecond)
216
+
217
+
218
+
219
+ buttonLabel.backgroundColor = UIColor.darkGray
220
+
221
+ self.gameButton.isEnabled = false
222
+
223
+
224
+
225
+ recordArray.append(recordStruct(record: (Double(timerSecond.text! + "." + timerMSecond.text!)!), recordtmp: (Double(timerSecond.text! + "." + timerMSecond.text!)! - 5.000)))
226
+
227
+
228
+
229
+ recordArray.sort(by: {$0.recordtmp < $1.recordtmp})
230
+
231
+
232
+
233
+ }
234
+
235
+ }
236
+
237
+
238
+
239
+ @IBAction func resetButton(_ sender: Any) {
240
+
241
+ buttonLabel.text = "Start!"
242
+
243
+ self.gameButton.isEnabled = true
244
+
245
+ buttonLabel.backgroundColor = UIColor.orange
246
+
247
+
248
+
249
+ timerSecond.text = "0"
250
+
251
+ timerMSecond.text = "0000"
252
+
253
+
254
+
255
+ count = 0
256
+
257
+ }
258
+
259
+
260
+
261
+ @IBAction func recordButton(_ sender: Any) {
262
+
263
+ performSegue(withIdentifier: "next", sender: nil)
264
+
265
+ }
266
+
267
+
268
+
269
+ override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
270
+
271
+ if segue.identifier == "next"{
272
+
273
+ let recordVc : recordViewController = segue.destination as! recordViewController
274
+
275
+ recordVc.recordArray = recordArray
276
+
277
+ }
278
+
279
+ }
280
+
281
+ }
282
+
283
+
284
+
285
+
286
+
287
+ ```
288
+
289
+
290
+
291
+ ```recordViewController
292
+
293
+
294
+
295
+ import UIKit
296
+
297
+
298
+
299
+ class recordViewController: UIViewController {
300
+
301
+
302
+
303
+ @IBOutlet var rank1: UILabel!
304
+
305
+ @IBOutlet var rank2: UILabel!
306
+
307
+ @IBOutlet var rank3: UILabel!
308
+
309
+ @IBOutlet var rank4: UILabel!
310
+
311
+ @IBOutlet var rank5: UILabel!
312
+
313
+ @IBOutlet var rank6: UILabel!
314
+
315
+ @IBOutlet var rank7: UILabel!
316
+
317
+
318
+
319
+ struct recordStruct {
320
+
321
+ var record : Double = 0.0
322
+
323
+ var recordtmp : Double = 0.0
324
+
325
+ }
326
+
327
+
328
+
329
+ var recordArray = [recordStruct]()
330
+
331
+
332
+
333
+ override func viewDidLoad() {
334
+
335
+ super.viewDidLoad()
336
+
337
+
338
+
339
+ rank1.text! = String(recordArray[0].record)
340
+
341
+ rank2.text! = String(recordArray[1].record)
342
+
343
+ rank3.text! = String(recordArray[2].record)
344
+
345
+ rank4.text! = String(recordArray[3].record)
346
+
347
+ rank5.text! = String(recordArray[4].record)
348
+
349
+ rank6.text! = String(recordArray[5].record)
350
+
351
+ rank7.text! = String(recordArray[6].record)
352
+
353
+ }
354
+
355
+ }
356
+
357
+
358
+
359
+ ```

2

文字の修正

2018/12/23 14:37

投稿

shu__n_p
shu__n_p

スコア20

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,12 @@
1
- recordArrayを別のViewControllerに移そうとしたとろ記のようなエラーが出てしまいました。構造体の配列は異なるViewContoroller間ではやり取りできないのでしょうか。ご回答感謝します。
1
+ recordArrayを別のViewControllerに移そうとしたとろ記のようなエラーが出てしまいました。構造体の配列は異なるViewContoroller間ではやり取りできないのでしょうか。ご回答感謝します。
2
2
 
3
3
 
4
+
5
+ ```error
6
+
7
+ Cannot assign value of type '[ViewController.recordStruct]' to type '[recordViewController.recordStruct]'
8
+
9
+ ```
4
10
 
5
11
 
6
12
 
@@ -38,7 +44,7 @@
38
44
 
39
45
  let recordVc : recordViewController = segue.destination as! recordViewController
40
46
 
41
- recordVc.recordArray = recordArray //エラー(Cannot assign value of type '[ViewController.recordStruct]' to type '[recordViewController.recordStruct]')
47
+ recordVc.recordArray = recordArray //エラー
42
48
 
43
49
  }
44
50
 

1

2018/12/23 10:39

投稿

shu__n_p
shu__n_p

スコア20

test CHANGED
@@ -1 +1 @@
1
- 構造体配列の一要素のみで新た配列を作りたい
1
+ 【Swift】構造体配列を異るViewControllerに渡したい
test CHANGED
File without changes