私は、AFnetworkingクライアントオブジェクトを使用しています。このオブジェクトは、XMLドキュメントに対して非同期要求を行い、解析します。NSNotificationCenter - メインスレッドをブロックせずに通知を送信するのを待つ方法?
また、文書の解析が完了したときに通知をポストするには、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.");
}
は基本的に私は思ったんだけど、私がするまでを待つ機能がフェッチ完了したことを確認するために、上記の指定された領域に必要なコードの種類を?
今のところ、「フェッチが完了しました」と表示されます。フェッチが完了する前にデバッグコンソールでを実行してください。
IはTLHTTPClientクラスにBOOLフラグを追加しようとした:
BOOL fetchingFlag;
を、次にしよう:
while([RESTClient fetchingFlag]) { NSLog(@"fetching...); }
このクラスは、それがRESTClient.fetchingFlag = FALSEを設定する通知を受信します。それは技術的にwhileループを殺すべきでしょうか?私のwhileループは無限に実行されます。
別のスレッドで待つことができますか? – MechEthan
別のスレッドで解析することができます – Kamal
通知のために登録すると、メインスレッドをブロックせずに既に待機しています。 –