0

私は新しい iOS 開発者なので、質問は非常にばかげているかもしれませんが、この種の問題を解決する方法がわかりません。誰かが私にいくつかのヒントを与えることができます。

次のコードでは、AFNetworking クラスを使用して 1,2,3 を出力しようとしてsetCompletionBlockWithSuccessいますが、コードが常に 1,3,2 を出力するようにする非同期メカニズムがあると思います。

では、1,2,3 を印刷するにはどうすればよいでしょうか。

AFHTTPRequestOperation *operation=[[AFHTTPRequestOperation alloc] initWithRequest:request];

NSLog(@"1");


       [operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
           NSLog(@"2");

                 } failure:^(AFHTTPRequestOperation *operation, NSError *error) {

               NSLog(@"2");

                        }
        ];

[operation start];

NSLog(@"3");
4

1 に答える 1

1

setCompletionBlockWithSuccess:非同期メソッドです。メソッドに渡すブロックは、非同期メソッドが終了した後に呼び出されます。ブロック プログラミングについてもお読みください: http://developer.apple.com/library/ios/#documentation/cocoa/Conceptual/Blocks/Articles/00_Introduction.html

于 2013-04-11T06:25:52.957 に答える