iphone - ASIHTTPRequest 自定义进度跟踪

标签 iphone ios protocols asihttprequest

我在 documentation 中阅读了有关使用 ASIHTTPRequest 在我的应用程序中实现自定义进度跟踪的信息。 。它提到实现 2 个方法,request:didReceiveBytes:request:incrementDownloadSizeBy:。我已将它们添加到我的 View Controller 中,但它们没有被调用。我现在只是想让示例代码正常工作。

// ViewController.m

- (void)fetchThisURLFiveTimes:(NSURL *)url
{
    [myQueue cancelAllOperations];
    [myQueue setDownloadProgressDelegate:self];
    [myQueue setDelegate:self];
    [myQueue setRequestDidFinishSelector:@selector(queueComplete:)];
    int i;
    for (i=0; i<5; i++) {
        ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
        request.showAccurateProgress = YES;
        [myQueue addOperation:request];
    }
    myQueue.showAccurateProgress = YES;
    [myQueue go];
}

- (void)queueComplete:(ASINetworkQueue *)queue
{
   NSLog(@"Value: %f", [myProgressIndicator progress]);
}

- (void)request:(ASIHTTPRequest *)request didReceiveBytes:(long long)bytes
{
    NSLog(@"bytes: %lld", bytes);
}

- (void)request:(ASIHTTPRequest *)request incrementDownloadSizeBy:(long long)newLength
{
    NSLog(@"newLength: %lld", newLength);
}

我在这里做错了什么?

最佳答案

哇。因此,放置 self.myQueue.showAccurateProgress = YES; 行的位置非常重要。必须将其添加到行 [self.myQueue addOperation:request]; 之前。这对我有用。

- (void)fetchThisURLFiveTimes:(NSURL *)url
{
    [self.myQueue cancelAllOperations];        
    [self setMyQueue:[ASINetworkQueue queue]];
    [self.myQueue setDownloadProgressDelegate:self];
    [self.myQueue setDelegate:self];
    [self.myQueue setQueueDidFinishSelector:@selector(queueFinished:)];
    self.myQueue.showAccurateProgress = YES;

    int i;
    for (i=0; i<5; i++) {
        ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
        [self.myQueue addOperation:request];
    }
    [self.myQueue go];
}

- (void)queueFinished:(ASINetworkQueue *)queue
{
    if ([self.myQueue requestsCount] == 0) {
        [self setMyQueue:nil];
    }
    NSLog(@"Queue finished");
}

- (void)setProgress:(float)newProgress {
    NSLog(@"progress: %f", newProgress);
}

为了解决这个问题浪费了 6 个小时。我希望这可以避免一些人的烦恼。

关于iphone - ASIHTTPRequest 自定义进度跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15668824/

相关文章:

iphone - 如何转移View但不关闭View数据?

iphone - 过滤 Apple 推送通知

ios - 跳过Xcode调试器中的线程指令

与协议(protocol)的 Swift 模式匹配

ios - 从同一部 iPhone 获取两个不同的设备 ID

ios - 使用 Opencv 示例从相机保存图像

objective-c - 带CoreText的多页PDF

php - 如何使用加密 key 在设备端加密并在服务器端解密

c# - AS2 服务器 - 使用(现代)C# .NET 接收 AS2 消息

ios - 仅当符合协议(protocol)时才扩展 UIButton