使用ios中的进度条同步api下载图像

时间:2014-03-18 03:18:35

标签: ios objective-c dropbox-api

您好我正在使用sync api从DBx下载图像并将我的应用数据同步到DBX。现在我想从进度条下载DBX中的图像。我尝试了这个,但我没有任何进展值,并通过此警告下载。这是我的代码

 DBFile *orignalImg = [[DBFilesystem sharedFilesystem]openFile:imgInfo.imgPath error:nil];
    __weak DBFile *oFile = orignalImg;
    if (oFile)
    {
        [orignalImageArray addObject:oFile]; // make reference of file
    }

    if (orignalImg.status.cached)
    {
        // already displayed
    }
    else
    {
        [orignalImg addObserver:self block:^(void)
         {
             DBFileStatus *fileStatus = oFile.status;
             DBFileStatus *newerStatus = oFile.newerStatus;
             UIImage *aImage = [UIImage imageWithData: [oFile readData:nil]];

             if (fileStatus.cached) // if image downloaded
             {
                 //display image
             }
             else if (fileStatus.state == DBFileStateDownloading) // show progress bar
             {
                  // show progress
                  [self showProgress:strPath andProgressValue:fileStatus.progress];
             }
             else if (newerStatus && newerStatus.state == DBFileStateDownloading)// show progress bar
             {
               [self showProgress:strPath andProgressValue:fileStatus.progress];             }
         }];
    }

警告是: - 不应在主线程上调用dropbox_file_wait_for_ready

1 个答案:

答案 0 :(得分:0)

@rmaddy是对的...在文件下载完成之前调用readData将导致该调用被阻止,因此您将看不到任何进展。 (这也可能导致警告。)

如果您不这样做,您应该能够在文件下载时看到进度,但看起来您还没有实现该部分。