2015/02/26

[iOS][Objective-C]AFNetworking 2.0を使ってPOST時に進捗状況を確認

AFNetworking 2.0を使ってPOSTする時に進捗状況を確認したい場合はどうすればいいのだろうか?

同じ悩みを抱えている人がstackoverflowのAFNetworking 2.0 HTTP POST Progressにあって、下のように実装したら確かに取得できた。

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
NSDictionary *parameters = @{};
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
AFHTTPRequestOperation *requestOperation = [manager POST:@"http://localhost"
                                              parameters:parameters
                               constructingBodyWithBlock:(id formData ){
                                               }  success:^(AFHTTPRequestOperation *operation, id responseObject) {
                                                   NSLog(@"operation success: %@\n %@", operation, responseObject);
                                               } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
                                                   NSLog(@"Error: %@", error);
                                           }];
[requestOperation setUploadProgressBlock:^(NSUInteger bytesWritten, NSInteger totalBytesWritten, NSInteger totalBytesExpectedToWrite) {
    double percentDone = (double)totalBytesWritten / (double)totalBytesExpectedToWrite;
    NSLog(@"progress updated(percentDone) : %f", percentDone);
}];
[requestOperation start];
これとSVProgressHUDを絡めれば相当いけている幹事になるかも。

0 コメント:

コメントを投稿