teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

4

誤字

2018/12/23 14:43

投稿

shu__n_p
shu__n_p

スコア20

title CHANGED
File without changes
body CHANGED
@@ -1,7 +1,7 @@
1
1
  #recordArrayを別のViewControllerに移そうとしたとろ下記のようなエラーが出てしまいました。構造体の配列は異なるViewContoroller間ではやり取りできないのでしょうか。ご回答感謝します。
2
2
 
3
3
  ```error
4
- Cannot assign value of type '[ViewController.recordStruct]' to type '[recordViewController.recordStruct]'
4
+ Cannot assign value of type '[ViewController.recordStruct]' to type '[recordViewController.recordStruct2]'
5
5
  ```
6
6
 
7
7
  ```ViewController
@@ -21,18 +21,18 @@
21
21
  override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
22
22
  if segue.identifier == "next"{
23
23
  let recordVc : recordViewController = segue.destination as! recordViewController
24
- recordVc.recordArray = recordArray //エラー
24
+ recordVc.recordArray2 = recordArray //エラー
25
25
  }
26
26
  }
27
27
  ```
28
28
 
29
29
  ```recordViewController
30
- struct recordStruct {
30
+ struct recordStruct2 {
31
31
  var record : Double = 0.0
32
32
  var recordtmp : Double = 0.0
33
33
  }
34
34
 
35
- var recordArray = [recordStruct]()
35
+ var recordArray2 = [recordStruct2]()
36
36
 
37
37
  ```
38
38
 
@@ -135,7 +135,7 @@
135
135
  override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
136
136
  if segue.identifier == "next"{
137
137
  let recordVc : recordViewController = segue.destination as! recordViewController
138
- recordVc.recordArray = recordArray
138
+ recordVc.recordArray2 = recordArray
139
139
  }
140
140
  }
141
141
  }
@@ -157,23 +157,23 @@
157
157
  @IBOutlet var rank6: UILabel!
158
158
  @IBOutlet var rank7: UILabel!
159
159
 
160
- struct recordStruct {
160
+ struct recordStruct2 {
161
161
  var record : Double = 0.0
162
162
  var recordtmp : Double = 0.0
163
163
  }
164
164
 
165
- var recordArray = [recordStruct]()
165
+ var recordArray2 = [recordStruct2]()
166
166
 
167
167
  override func viewDidLoad() {
168
168
  super.viewDidLoad()
169
169
 
170
- rank1.text! = String(recordArray[0].record)
170
+ rank1.text! = String(recordArray2[0].record)
171
- rank2.text! = String(recordArray[1].record)
171
+ rank2.text! = String(recordArray2[1].record)
172
- rank3.text! = String(recordArray[2].record)
172
+ rank3.text! = String(recordArray2[2].record)
173
- rank4.text! = String(recordArray[3].record)
173
+ rank4.text! = String(recordArray2[3].record)
174
- rank5.text! = String(recordArray[4].record)
174
+ rank5.text! = String(recordArray2[4].record)
175
- rank6.text! = String(recordArray[5].record)
175
+ rank6.text! = String(recordArray2[5].record)
176
- rank7.text! = String(recordArray[6].record)
176
+ rank7.text! = String(recordArray2[6].record)
177
177
  }
178
178
  }
179
179
 

3

コードの追加

2018/12/23 14:43

投稿

shu__n_p
shu__n_p

スコア20

title CHANGED
File without changes
body CHANGED
@@ -1,4 +1,4 @@
1
- recordArrayを別のViewControllerに移そうとしたとろ下記のようなエラーが出てしまいました。構造体の配列は異なるViewContoroller間ではやり取りできないのでしょうか。ご回答感謝します。
1
+ #recordArrayを別のViewControllerに移そうとしたとろ下記のようなエラーが出てしまいました。構造体の配列は異なるViewContoroller間ではやり取りできないのでしょうか。ご回答感謝します。
2
2
 
3
3
  ```error
4
4
  Cannot assign value of type '[ViewController.recordStruct]' to type '[recordViewController.recordStruct]'
@@ -34,4 +34,147 @@
34
34
 
35
35
  var recordArray = [recordStruct]()
36
36
 
37
+ ```
38
+
39
+ ###すべてのコードは下記の通りです。
40
+ ```ViewController
41
+
42
+ import UIKit
43
+
44
+ class ViewController: UIViewController {
45
+
46
+ @IBOutlet var buttonLabel: UILabel!
47
+ @IBOutlet var timerSecond: UILabel!
48
+ @IBOutlet var timerMSecond: UILabel!
49
+ @IBOutlet var gameButton: UIButton!
50
+ @IBOutlet var recordLabel: UILabel!
51
+
52
+ var timer : Timer!
53
+
54
+ var startTime = TimeInterval() //開始した時間
55
+
56
+ var currentTime = TimeInterval() //停止した時間
57
+
58
+ var time = TimeInterval() //currentTime - startTime
59
+
60
+
61
+
62
+ struct recordStruct {
63
+ var record : Double = 0.0
64
+ var recordtmp : Double = 0.0
65
+ }
66
+
67
+ //var recordstruct : recordStruct
68
+ var recordArray = [recordStruct]()
69
+
70
+
71
+
72
+ var recordArraydepo = [Double]()
73
+
74
+ var count = 0
75
+
76
+ override func viewDidLoad() {
77
+ super.viewDidLoad()
78
+ }
79
+
80
+
81
+
82
+ @IBAction func gameButton(_ sender: Any) { //ゲームボタンが押された時
83
+
84
+ if count == 0{ //押すのが1回目なら
85
+ buttonLabel.text = "Stop!"
86
+
87
+ timer = Timer.scheduledTimer(withTimeInterval: 0.0001, repeats: true) { (Timer) in
88
+ self.timerSecond.text = String(Int.random(in: 1 ... 9))
89
+ self.timerMSecond.text = String(Int.random(in: 1...9999))
90
+ }
91
+
92
+ startTime = NSDate.timeIntervalSinceReferenceDate
93
+ count = 1
94
+ }else{//押すのが2回目なら
95
+
96
+ if timer != nil{
97
+ timer.invalidate()
98
+ }
99
+
100
+ currentTime = NSDate.timeIntervalSinceReferenceDate
101
+ time = currentTime - startTime
102
+
103
+ let second = Int (fmod(time, 60))
104
+ time -= TimeInterval(second)
105
+ let msecond = Int (time * 10000)
106
+
107
+ timerSecond.text = String(format: "%01d", second)
108
+ timerMSecond.text = String(format: "%04d", msecond)
109
+
110
+ buttonLabel.backgroundColor = UIColor.darkGray
111
+ self.gameButton.isEnabled = false
112
+
113
+ recordArray.append(recordStruct(record: (Double(timerSecond.text! + "." + timerMSecond.text!)!), recordtmp: (Double(timerSecond.text! + "." + timerMSecond.text!)! - 5.000)))
114
+
115
+ recordArray.sort(by: {$0.recordtmp < $1.recordtmp})
116
+
117
+ }
118
+ }
119
+
120
+ @IBAction func resetButton(_ sender: Any) {
121
+ buttonLabel.text = "Start!"
122
+ self.gameButton.isEnabled = true
123
+ buttonLabel.backgroundColor = UIColor.orange
124
+
125
+ timerSecond.text = "0"
126
+ timerMSecond.text = "0000"
127
+
128
+ count = 0
129
+ }
130
+
131
+ @IBAction func recordButton(_ sender: Any) {
132
+ performSegue(withIdentifier: "next", sender: nil)
133
+ }
134
+
135
+ override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
136
+ if segue.identifier == "next"{
137
+ let recordVc : recordViewController = segue.destination as! recordViewController
138
+ recordVc.recordArray = recordArray
139
+ }
140
+ }
141
+ }
142
+
143
+
144
+ ```
145
+
146
+ ```recordViewController
147
+
148
+ import UIKit
149
+
150
+ class recordViewController: UIViewController {
151
+
152
+ @IBOutlet var rank1: UILabel!
153
+ @IBOutlet var rank2: UILabel!
154
+ @IBOutlet var rank3: UILabel!
155
+ @IBOutlet var rank4: UILabel!
156
+ @IBOutlet var rank5: UILabel!
157
+ @IBOutlet var rank6: UILabel!
158
+ @IBOutlet var rank7: UILabel!
159
+
160
+ struct recordStruct {
161
+ var record : Double = 0.0
162
+ var recordtmp : Double = 0.0
163
+ }
164
+
165
+ var recordArray = [recordStruct]()
166
+
167
+ override func viewDidLoad() {
168
+ super.viewDidLoad()
169
+
170
+ rank1.text! = String(recordArray[0].record)
171
+ rank2.text! = String(recordArray[1].record)
172
+ rank3.text! = String(recordArray[2].record)
173
+ rank4.text! = String(recordArray[3].record)
174
+ rank5.text! = String(recordArray[4].record)
175
+ rank6.text! = String(recordArray[5].record)
176
+ rank7.text! = String(recordArray[6].record)
177
+ }
178
+ }
179
+
37
180
  ```

2

文字の修正

2018/12/23 14:37

投稿

shu__n_p
shu__n_p

スコア20

title CHANGED
File without changes
body CHANGED
@@ -1,5 +1,8 @@
1
- recordArrayを別のViewControllerに移そうとしたとろ記のようなエラーが出てしまいました。構造体の配列は異なるViewContoroller間ではやり取りできないのでしょうか。ご回答感謝します。
1
+ recordArrayを別のViewControllerに移そうとしたとろ記のようなエラーが出てしまいました。構造体の配列は異なるViewContoroller間ではやり取りできないのでしょうか。ご回答感謝します。
2
2
 
3
+ ```error
4
+ Cannot assign value of type '[ViewController.recordStruct]' to type '[recordViewController.recordStruct]'
5
+ ```
3
6
 
4
7
  ```ViewController
5
8
  struct recordStruct {
@@ -18,7 +21,7 @@
18
21
  override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
19
22
  if segue.identifier == "next"{
20
23
  let recordVc : recordViewController = segue.destination as! recordViewController
21
- recordVc.recordArray = recordArray //エラー(Cannot assign value of type '[ViewController.recordStruct]' to type '[recordViewController.recordStruct]')
24
+ recordVc.recordArray = recordArray //エラー
22
25
  }
23
26
  }
24
27
  ```

1

2018/12/23 10:39

投稿

shu__n_p
shu__n_p

スコア20

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