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

回答編集履歴

2

訂正

2021/05/08 09:24

投稿

hoshi-takanori
hoshi-takanori

スコア7903

answer CHANGED
@@ -1,5 +1,6 @@
1
1
  > ②の地点で値を格納するにはどうすればよろしいでしょうか?
2
2
 
3
- 非同期処理なので、不可能です。
3
+ ~~非同期処理なので、不可能です。~~
4
+ 訂正: API の結果が返るのを待つことは不可能ではありませんが、メインスレッドでそれをやるとイベント処理を止めることになるので、推奨されてません。
4
5
 
5
6
  task.resume() は API アクセスを開始してすぐに return して②に制御が移りますが、その時点では elevation_value は空のままです。その後、API の結果が返ってきてから session.dataTask の completionHandler が実行され、その中で elevation_value に値が追加されてから①が実行されることになります。

1

追記

2021/05/08 09:24

投稿

hoshi-takanori
hoshi-takanori

スコア7903

answer CHANGED
@@ -1,5 +1,5 @@
1
1
  > ②の地点で値を格納するにはどうすればよろしいでしょうか?
2
2
 
3
- 不可能です。
3
+ 非同期処理なので、不可能です。
4
4
 
5
- task.resume() は API アクセスを開始してすぐに return して②に制御が移りますが、その時点では elevation_value は空のままです。その後、API の結果が返ってきてから session.dataTask の completionHandler が実行され、その中で①が実行されることになります。
5
+ task.resume() は API アクセスを開始してすぐに return して②に制御が移りますが、その時点では elevation_value は空のままです。その後、API の結果が返ってきてから session.dataTask の completionHandler が実行され、その中で elevation_value に値が追加されてから①が実行されることになります。