您好我正在使用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
答案 0 :(得分:0)
@rmaddy是对的...在文件下载完成之前调用readData
将导致该调用被阻止,因此您将看不到任何进展。 (这也可能导致警告。)
如果您不这样做,您应该能够在文件下载时看到进度,但看起来您还没有实现该部分。