

現在アプリを開発しており、APIに現在位置情報（緯度、経度)と現在時間をURLのパラメータとして渡す処理を行いたいのですが、処理がうまくいきません。

A:現在位置を取得するクラス  
B:現在時間を取得するクラス  
C:APIからデータを取得するクラス

以上３つ(A,B,C)のクラスをViewControllr内でインスタンス化しviewDidload()内にA,B,Cの順に呼び出したいのですが、どうもデバックを見る限りB,C,Aの順に処理が行われているため現在位置情報をパラメータとして渡せていないのでAPIからデータを得ることができません。  
A,B,Cの順で処理を行う良い方法はないでしょうか？  
教えていただけると幸いです。


CC BY-SA 3.0
2015-06-06T19:32:08.240
11053
2015-08-06T00:41:13.613
10024
question
swift
swiftでの非同期通信


ということは、Aの処理が非同期であるのだが、同期処理したい。ということのようですが、非同期処理のAppleの手続きを使っているかぎり、viewDidLoadのなかで、A
B Cの完了を待つような事をするのは、禁忌です。というのは、メインスレッド(UI)の処理をブロックしているから。  
Aを始めることは、viewDidLoadの中でも出来ますが。

その為、Aの処理の完了を待つためには、NSNotificationをつかうか、completion
handlerを使うなどして、Aの完了後に、viewDidLoadではないところで。B,Cを呼ぶようにしないといけないです。


CC BY-SA 3.0
2015-06-06T23:42:05.087
11055
2015-06-06T23:42:05.087
75
11053
answer