0

AFNetworkingを非同期で実行しています。以下のコードを参照してください。

パッケージをダウンロードするために同期的に実行したい(人々が選択できるサービスのリストを取得する必要がある)。これどうやってするの?

ありがとう。

 NSMutableURLRequest *apiRequest =
[self multipartFormRequestWithMethod:@"POST"
                                path: pathstr
                          parameters: params
           constructingBodyWithBlock: ^(id <AFMultipartFormData>formData)
           {
               //TODO: attach file if needed
           }];

AFJSONRequestOperation* operation = [[AFJSONRequestOperation alloc] initWithRequest: apiRequest];
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
    //success!
    completionBlock(responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    //failure :(

    NSLog(@"%@", error);
    completionBlock([NSDictionary dictionaryWithObject:[error localizedDescription] forKey:@"error"]);
}];

[operation start];
4

1 に答える 1

1

パッケージをダウンロードするために同期的に実行したい(人々が選択できるサービスのリストを取得する必要がある)。これどうやってするの?

AFNetworkingは同期操作をサポートしていません。

一方、UIが応答しなくなるため、UIスレッドで同期操作が必要になることはほとんどありません。

(人々が選択できるサービスのリストを取得する必要があります)

できることは、非同期操作の進行中にサービスのリストがダウンロードされていることを示すUIヒントを表示することです。

于 2012-12-07T19:00:35.673 に答える