質問編集履歴

1

試した事を追加しました!

2020/03/05 14:48

投稿

chichan666
chichan666

スコア5

test CHANGED
@@ -1 +1 @@
1
- ビューが表示されてからの経過時間を取得し、画面表示させようと試みたところクラッシュしてしまいました
1
+ ビューが表示されてからの経過時間を取得し、画面表示させようと試みたところクラッシュしてしまい困ってい
test CHANGED
@@ -2,10 +2,16 @@
2
2
 
3
3
 
4
4
 
5
+ こんにちは!SwiftUI初心者です。
6
+
5
7
  ビューが表示されてからの経過時間を取得し、画面表示する機能を実装しようとしています。
6
8
 
7
9
  下記コードにて実行しようとしたところ、Clashしてしまいました。(必要箇所のみ抜粋しております)
8
10
 
11
+ 助けていただけると大変助かります。
12
+
13
+ よろしくお願いいたします。
14
+
9
15
 
10
16
 
11
17
  ### 発生している問題・エラーメッセージ
@@ -112,6 +118,104 @@
112
118
 
113
119
 
114
120
 
121
+ ### 試した事
122
+
123
+ その後、下記のようにコードを修正しても同じくClashしてしまいました。
124
+
125
+
126
+
127
+ ```ここに言語名を入力
128
+
129
+ import SwiftUI
130
+
131
+ import UIKit
132
+
133
+ import Combine
134
+
135
+
136
+
137
+ //ビューが表示されてからの経過時間を画面表示するビュー
138
+
139
+ struct ContentView: View {
140
+
141
+ @EnvironmentObject var timerHolder : TimerHolder
142
+
143
+
144
+
145
+
146
+
147
+ var body: some View {
148
+
149
+ ZStack {
150
+
151
+ Text(String(self.timerHolder.count))
152
+
153
+ }.onAppear{
154
+
155
+ self.timerHolder.start()
156
+
157
+ }.onDisappear{
158
+
159
+ }
160
+
161
+ } //body
162
+
163
+ } //ContentlView
164
+
165
+
166
+
167
+
168
+
169
+ //画面が表示されてからの時間をカウントする
170
+
171
+ class TimerHolder : ObservableObject {
172
+
173
+ @Published var timer : Timer!
174
+
175
+ @Published var count = 0
176
+
177
+ @Published var timeup:Bool = false
178
+
179
+ func start() {
180
+
181
+ self.timer?.invalidate()
182
+
183
+ self.count = 0
184
+
185
+ self.timer = Timer.scheduledTimer(withTimeInterval: 0.01, repeats: true) {
186
+
187
+ _ in
188
+
189
+ self.count += 1
190
+
191
+ if(self.count==500){self.timeup=true}
192
+
193
+ }
194
+
195
+ }
196
+
197
+ }
198
+
199
+
200
+
201
+ //プレビュー
202
+
203
+ struct ContentView_Previews: PreviewProvider {
204
+
205
+ static var previews: some View {
206
+
207
+ ContentView()
208
+
209
+ }
210
+
211
+ }
212
+
213
+
214
+
215
+ ```
216
+
217
+
218
+
115
219
 
116
220
 
117
221
  ### 補足情報(FW/ツールのバージョンなど)