2012-03-29 8 views
0

私のアプリでgetValuesAndCalculateに電話する必要があります。しかし、その作業を行うためには、サーバーからレコードを取得する必要があります。これは、非同期呼び出しで行う必要があります。サーバーデータは、コールバック関数を介して受信されます。したがって、getValuesAndCalculateでは、計算を進める前にデータがあるまで待つ必要があります。これをどのように実装すればよいですか?iOS/iPhoneでコールバック関数が返るのを待つ

+0

独自のロジックを持つプロトコルに進む.. – ajay

+0

サーバのデータコールバック関数からgetValuesAndCalculateを呼び出しますか? – danielbeard

+2

[AFNetworking](https://github.com/AFNetworking/AFNetworking)をご覧ください。ASync要求を行い、ブロックを使用して応答を処理できます。 – rckoenes

答えて

2

使用プロトコルおよび代表者:

代表団は何もありませんが、あなたは、サーバー側のオブジェクトへのあなたのクラスからオブジェクトを割り当てます。 サーバーはこのオブジェクトを使用して、クライアント側のコードでメソッドを呼び出すことができます。

+0

また、NSNotificationCenterを使用することもできます。それは同じだ。 ループなどを使用しないでください。応答が来るまでアプリをブロックする必要はありません。あなたのアプリは何か起きるまで待つ必要があります。 – kinghomer

0

サーバからデータを取得するまでNSRunloopを使用してみてください。

しばらく { [[NSRunLoop currentRunLoop] RUNMODE:NSDefaultRunLoopMode beforeDate:1.0] }(isFinished!):

0

あなたはこの質問IE用のスレッドを実装することができ、

// in main thread 
// start activity indicator 
NSThread *calculateThread = [[NSThread alloc] initWithTarget:self selector:@selector(getValuesAndCalculate) object:nil]; 
[calculateThread start]; 
// End of Main thread 



- (void)getValuesAndCalculate 
{ 
    // Perform transactions with server 
     [self performSelectorOnMainThread:@selector(continueMainThreadOperations) withObject:nil waitUntilDone:YES]; 
} 
などについては

それはそれです!

関連する問題