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];
ても何も起こりません。私はデリゲートメソッドを持っています:
- (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: at への呼び出しは、loadMetadata デリゲート メソッドを呼び出しstring
ません。
編集 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];
}