UIDocumentPickerViewController и документы iWork не загружаются


Я начал внедрять UIDocumentPickerViewController сегодня и я ударил кирпичную стену. Я получил его, чтобы импортировать документы и дать мне NSURL для этого, но когда я использую документ iWork, NSData, который я использую, является нулем. Вероятно, потому, что документы iWork - это каталоги, а не файлы, и я рассмотрел некоторые другие вопросы о Stackru, и ни один из них, похоже, не помогает или не предлагает решение, отличное от архивирования, что кажется неправильным, если учесть, когда они сделаны. с помощью общего листа в соответствующем приложении iWork все работает нормально.

Вот мой код:

    NSArray* components = [[url lastPathComponent] componentsSeparatedByString:@"."];

    NSData* data = [[NSData alloc] initWithContentsOfURL:url];

    NSString* filename = [[[url lastPathComponent] stringByReplacingOccurrencesOfString:[components lastObject] withString:@""] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];


    NSString* newPath = [NSString stringWithFormat:@"%@/tmpFiles/%@%@",[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0],filename,[components lastObject]];
    [data writeToFile:newPath atomically:YES];

    [self.files addObject:[NSURL fileURLWithPath:newPath]];
    [self updateFileCount];

Кто-нибудь еще разобрался, как решить эту проблему? Благодарю.

1 ответ

Документы типа.pages или.numbers представляют собой не отдельные файлы, а пакеты. Поэтому вы не можете читать их с -dataWithContentsOfURL:.

Вы проверяли копирование с помощью -copyItemAtURL:toURL:error: (NSFileManager)?

Другие вопросы по тегам