首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASIHTTPRequest自定义进度跟踪

ASIHTTPRequest自定义进度跟踪
EN

Stack Overflow用户
提问于 2013-03-28 04:31:30
回答 1查看 719关注 0票数 0

我读过关于在documentation中使用ASIHTTPRequest在我的应用程序中实现自定义进度跟踪的文章。它提到了实现两个方法,request:didReceiveBytes:request:incrementDownloadSizeBy:。我已经将它们添加到我的视图控制器中,但是它们没有被调用。在这一点上,我只是想让示例代码正常工作。

代码语言:javascript
复制
// 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);
}

我在这里做错了什么?

EN

回答 1

Stack Overflow用户

发布于 2013-03-29 00:46:13

哇。因此,放置self.myQueue.showAccurateProgress = YES;行的位置非常重要。它必须添加到行[self.myQueue addOperation:request];之前。以下是对我起作用的方法。

代码语言:javascript
复制
- (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个小时。我希望这能让某些人不那么恼火。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15668824

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档