Как найти размер документа в iCloud, прежде чем выбрать его и загрузить на устройство с помощью UIDocumentPickerViewController

Как найти размер документа в iCloud, прежде чем выбрать его и загрузить на устройство с помощью UIDocumentPickerViewController. Я могу загрузить документ на устройство и затем преобразовать в 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
}

    }

1 ответ

Решение

Настройте файловый координатор так, чтобы он просто считывал только метаданные, а не загружал весь файл. Из этого 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);
}
}
}
Другие вопросы по тегам