XMLドキュメントの非同期リクエストを作成して解析するAFNetworkingクライアントオブジェクトを使用しています。
また、NSNotificationCenterを使用して、ドキュメントの解析が終了したときに通知を投稿します。
メインスレッドをブロックせずに通知が投稿されるのを待つ方法はありますか?
例:コード:
-(void)saveConfiguration:(id)sender {
TLHTTPClient *RESTClient = [TLHTTPClient sharedClient];
// Performs the asynchronous fetching....this works.
[RESTClient fetchActiveUser:[usernameTextField stringValue] withPassword:[passwordTextField stringValue]];
/*
* What do I need here ? while (xxx) ?
*/
NSLog(@"Fetch Complete.");
}
基本的に、フェッチが完了するまで関数が待機することを保証するために、上記の指定された領域にどのような種類のコードが必要か疑問に思っていますか?
今のところ、「FetchComplete」が表示されます。フェッチが完了する前にデバッグコンソールで。
TLHTTPClientクラスにBOOLフラグを追加してみました。
BOOL fetchingFlag;
そして試してみてください:
while([RESTClient fetchingFlag]) { NSLog(@"fetching...); }
このクラスは通知を受信すると、RESTClient.fetchingFlag=FALSEを設定します。技術的にはwhileループを強制終了する必要がありますか?私のwhileループが無限に実行されることを除いて?!