5

ドキュメントを選択してUIDocumentPickerViewControllerを使用してデバイスにダウンロードする前に、iCloudでドキュメントのサイズを見つける方法.ドキュメントをデバイスにダウンロードしてからNSDataに変換できますが、ファイルサイズを決定できますが、ドキュメント自体のダウンロードを回避し、ダウンロードする前にファイルサイズを事前に決定してください。uidocumentpickerviewcontrollerにメソッドまたはプロパティが見つかりませんでした。

 - (void)documentPicker:(UIDocumentPickerViewController *)controller didPickDocumentAtURL:(NSURL *)url {

 NSFileCoordinator *coordinator = [[NSFileCoordinator alloc] initWithFilePresenter:nil];
    NSError *error = nil;

    [coordinator coordinateReadingItemAtURL:url options:0 error:&error byAccessor:^(NSURL *newURL) {

//assuming the file coordinator has downloaded the file here and provided the new url here
}

    }
4

1 に答える 1

7

ファイル全体をダウンロードするのではなく、メタデータのみを読み取るようにファイル コーディネーターを構成します。この URL から、メソッド getPromisedItemResourceValue: forKey:NSURLFileSizeKey error:

この方法よりも効率的な回答を投稿してください。これは私にとってうまくいった解決策です

- (void)documentPicker:(UIDocumentPickerViewController *)controller didPickDocumentAtURL:(NSURL *)url {
     NSError *error = nil;
    NSFileCoordinator *coordinator = [[NSFileCoordinator alloc] initWithFilePresenter:nil];

     [coordinator coordinateReadingItemAtURL:url options:NSFileCoordinatorReadingImmediatelyAvailableMetadataOnly error:&error byAccessor:^(NSURL *newURL) {

         NSError *err = nil;

         NSNumber * fileSize;
         if(![url getPromisedItemResourceValue:&fileSize forKey:NSURLFileSizeKey error:&err]) {
             NSLog(@"Failed error: %@", error);
             return ;
         } else {
          NSLog(@"fileSize %f",fileSize.doubleValue);
}
}
}
于 2016-12-06T19:23:07.757 に答える