gpt4 book ai didi

ios - Dropbox iOS Core SDK 不下载文件

转载 作者:行者123 更新时间:2023-12-01 18:22:13 25 4
gpt4 key购买 nike

当我调用 DBRESTClient 将文件下载到给定路径时,API 不会调用加载函数。

例如:

- (void) downloadFiles:(NSMutableArray *)files
{
NSLog(@"%@", files);
itemsToBeDownloaded = [[NSMutableArray alloc] initWithArray:files];
restClient = [self restClient];
for (NSString *string in files)
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"/Dropbox%@", string]];
[restClient loadFile:string intoPath:filePath];
}
}

打印 files返回 (
"/Blank.pdf"
)

打印 string返回 /Blank.pdf
打印 filePath返回 /var/mobile/Applications/0C506400-7142-41E2-9F3D-0965985CED9E/Documents/Dropbox/Blank.pdf
因此调用该函数并知道要下载的文件及其路径。

但是,当我调用 [restClient loadFile:string intoPath:filePath]; , 没发生什么事。我有委托(delegate)方法:
- (void) restClient:(DBRestClient *)client loadedFile:(NSString *)destPath
{
NSLog(@"Called!");
}

- (void) restClient:(DBRestClient *)client loadedFile:(NSString *)destPath contentType:(NSString *)contentType
{
NSLog(@"Called!");
}

- (void) restClient:(DBRestClient *)client loadedFile:(NSString *)destPath contentType:(NSString *)contentType metadata:(DBMetadata *)metadata
{
NSLog(@"%@", destPath);
NSLog(@"%@", contentType);
NSLog(@"%@", metadata);
}

- (void) restClient:(DBRestClient *)client loadFileFailedWithError:(NSError *)error
{
NSLog(@"Error downloading file: %@", error);
}

没有 Called!语句产生。 RestClient 似乎没有下载数据。

另注: restClient = [self restClient];确实返回了一个有效的 DBRESTClient,所以我知道它是有效的。但是,没有调用加载文件的调用。

调用 loadFile: 是否有特定原因?是不是正在制作?我让它加载元数据就好了。

编辑:调用 loadMetadata:在 string 不是 调用 loadMetadata 委托(delegate)方法。

编辑 2:下面的代码列出了如何声明文件的数组:
- (void) downloadFiles
{
NSMutableArray *filesToDownload = [[NSMutableArray alloc] init];
for (int i = 0; i < [[itemsToDownload allKeys] count]; ++i)
{
for (NSString *string in [itemsToDownload objectForKey:[[itemsToDownload allKeys] objectAtIndex:i]])
{
[filesToDownload addObject:[NSString stringWithFormat:@"%@%@", [[itemsToDownload allKeys] objectAtIndex:i], string]];
}
}
[dropboxController downloadFiles:filesToDownload];
}

最佳答案

所以我弄清楚了整个问题。事实证明,你不能从后台线程调用其余的客户端方法,它必须在主线程上调用。

关于ios - Dropbox iOS Core SDK 不下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16570058/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com