次のコードがあります。
while ( /* Some condition that will not be met in this example */ ) {
if( shouldSendRequest ) {
[launchpad getRequestToken];
}
else {
// Next step
}
}
- (void)getRequestToken {
[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue]
completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
[self requestForRequestTokenDidComplete:data withResponse:response withError:error];
}];
}
-(void)requestForRequestTokenDidComplete:(NSData *)data
withResponse:(NSURLResponse *)response withError:(NSError *)error {
// Deal with the returned token
}
私が抱えている問題は、 while ループ内にあるgetRequestToken
限り、完了ハンドラーが呼び出されないことです。getRequestToken
while ループをコメントアウトするとすぐに、すべてが機能します。
ここで何が起きていて、それを防ぐことは可能ですか? while ループを使用して、この (および他の) 完了ハンドラーが処理を完了する前に実行フローが進行するのを防ぐことを計画しました。