ASIHTTP上傳進度的修正設置

        兩個上傳的block方法,一個方法會調用兩次然後計算出文件上傳大小,一個是方法是計算出實時上傳了好多的數據,然而在asihttp上傳隊列中算上傳比例的話,算出來的比例是有誤差的。需要在a/b後面再加上一個修正值c。


正確的計算公司應爲

實時上傳百分比 = a/b + c;

其中 a += 第一個block的第一個值

        b += 第二個block的第一個值

        c 等於total

//顯示精確進度
    request.showAccurateProgress = YES;
    __block float totalSize = 0;
    __block float theSize = 0;
//這個方法會調用兩次
    [request setUploadSizeIncrementedBlock:^(long long size) {
        totalSize = totalSize + size;
        NSLog(@"%f",totalSize);
        
    }];
    
//在隊列上傳的時候需要加上total這個修正值
    [request setBytesSentBlock:^(unsigned long long size, unsigned long long total) {
        //the total is 修正量
        theSize += size;
        
        NSLog(@"%f",theSize/totalSize + total);
        
    }];
    
    
    [request setCompletionBlock:^{
        NSString *result = [request responseString];
        NSLog(@"the reuslt is %@",result);
    }];
    
    [request setFailedBlock:^{
        NSLog(@"failed");
    }];
    
    [request startAsynchronous];



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章