0

ドキュメントで、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);
}

ここで何が間違っていますか?

4

1 に答える 1

1

わお。そのため、ラインをどこに配置する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時間も無駄です。これが誰かの悪化を救うことを願っています。

于 2013-03-28T16:46:12.603 に答える