【问题标题】:In RestKit 0.2.x, overriding the NSURLConnectionDataDelegate implementation found in RKHTTPRequestOperation to achieve download progress indication在 RestKit 0.2.x 中,覆盖 RKHTTPRequestOperation 中的 NSURLConnectionDataDelegate 实现以实现下载进度指示
【发布时间】:2015-07-21 05:18:02
【问题描述】:

较新的RestKit 0.2.x 很棒,但我无法从RKHTTPRequestOperation : AFHTTPRequestOperation : AFURLConnectionOperation<NSURLConnectionDataDelegate> 类中找到任何挂钩来扩展它对NSURLConnectionDataDelegate 的实现,我认为这对于实现下载进度HUD 是非常必要的。

我希望 这样做是这样的:

RKObjectRequestOperation *operation = 
     [[RKObjectManager sharedManager]
         appropriateObjectRequestOperationWithObject:nil 
         method:RKRequestMethodGET path:_requestPath 
         parameters:_requestParameters];

operation.RKHTTPRequestOperation.onDidReceiveResponse = ^(void)(NSURLConnection *connection, NSURLResponse *response) {
    // store response or at least its estimated length
    _response = response; //OR AT LEAST
    // show progress hud at 0 / length = 0%
   _estimated = response.expectedContentLength;
   [SVProgressHUD showProgress:0.0f];
}

operation.RKHTTPRequestOperation.onDidReceiveData = ^(void)(NSURLConnection *connection, NSData *data) {
     // show updated progress
     [_myData appendData:data];
     [SVProgressHUD showProgress:((float)myData.length/_estimated * 100)];
}

所以,我想知道:

  1. 是否有一个钩子/协议/块/选择器/我不知道RestKitAFNetworking 提供了使这成为可能? (我看到的只有successfailure,它们都来不及使用)。

  2. 如果不是,什么是最合适、可维护和安全的方式来调配/覆盖/修改 NSURLConnectionDataDelegate 回调以将它们公开给我的客户?

【问题讨论】:

  • 你在下载什么大到需要进度提示?
  • 没什么特别的,但我想要它:)

标签: nsurlconnection restkit restkit-0.20 nsurlconnectiondelegate


【解决方案1】:

与您应该能够使用的命题类似:

[operation.RKHTTPRequestOperation setDownloadProgressBlock:...]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多