1

私のアプリでは、いくつかの JSON ファイルをダウンロードする必要があります。コードでわかるように、これらの URL を plist に保存します。「AFHTTPRequestOperationManager」を作成した後、「url_list」の番号に操作を追加するループを作成します。

NSString* plistPath = [[NSBundle mainBundle] pathForResource:@"url_json" ofType:@"plist"];
NSArray *url_list = [NSArray arrayWithContentsOfFile:plistPath];

self.manager = [AFHTTPRequestOperationManager manager];

for (id element in url_list){

    NSURL *url = [NSURL URLWithString:element];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    AFHTTPRequestOperation *op = [[AFHTTPRequestOperation alloc] initWithRequest:request];
    op.responseSerializer = [AFHTTPResponseSerializer serializer];
    [op setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
        NSLog(@"JSON: %@", responseObject);
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        NSLog(@"Error: %@", error);
    }];
    [self.manager.operationQueue addOperation:op];
}

このコードは問題ないはずですが、次の 2 つの情報が必要です。

  • 私の「マネージャー」の進捗値を知る方法は何ですか?, 単一の進捗値ですべての操作の状態を知りたいからです

  • 操作が終了したら、このデータを解析するメソッドに「responseObject」を渡す必要があるため、操作がいつ終了するかを知りたい

手伝って頂けますか?

4

1 に答える 1

1

AFNetworking のバッチ処理に関するドキュメントをご覧ください。

https://github.com/AFNetworking/AFNetworking#batch-of-operations

単一の操作の完了時に呼び出される進行ブロックを割り当てるオプションがあり、その上に、すべての操作が完了したときに呼び出される完了ブロックを割り当てることができます。

必要に応じて、完了ブロックを単一の操作に割り当てて、responseObjects を解析することができます。

于 2014-02-26T09:31:30.890 に答える