1

私は AFNetworking のソース コードを調べています (そして、Objective-C と AFNetworking の初心者です)。継承されたコードを理解しようとしています。それらは何も返さず、AFHTTPRequestOperation と応答または NSError のいずれかを渡すブロックのようです。これはブロック定義ですか?最後の成功/失敗は何を意味しますか? 私はそれが成功のようなものだと思っています:MyParam(NSString *)my_param. たった一文で十分なのと同じように。

- (void)getPath:(NSString *)path
     parameters:(NSDictionary *)parameters
        success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success
        failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure
{

どんな助けでも大歓迎です。事前にThx

4

2 に答える 2

3

およびパラメータはsuccessfailureApple による C プログラミング言語の拡張であるブロックです。ブロックは、無名関数ポインターに非常に似ています。

このシナリオでは、ドロップイン コールバック関数の役割を果たします。パスが正常に取得された場合、successコールバックが呼び出されるか、failureコールバックが呼び出されます。

署名は、これらのコールバック ブロックがそれぞれ受け入れる必要のあるパラメーターを指定します。これらのパラメーターの実際の値は、この AFNetworking 呼び出しによって提供されます。

于 2013-01-04T19:37:19.970 に答える
2

はい、それらはブロックです。最初に表示される先頭のsuccess/failureは、メソッドの名前の一部であり、メソッドに渡すときにその引数の前に置くものです。はvoid、ブロックが値を返さないことを示します。「^私はブロックだ!」と叫びます。あなたに。ブロックは 2 つの引数を取ります。aはブロック内AFHTTPRequestOperation *として知られoperation、 an はブロック内idとして知られresponseObjectています。最後のsuccess/failureは、それを受け取るメソッド内で参照するために使用されるブロック引数全体の名前です。

于 2013-01-04T19:41:52.973 に答える