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


Я начал внедрять UIDocumentPickerViewController сегодня и наткнулся на кирпичную стену. Я получил его для импорта документов и дал мне за это NSURL, но когда я использую документ iWork, NSData, который я использую, равен нулю. Вероятно, это потому, что документы iWork представляют собой каталоги, а не файлы, и я просмотрел некоторые другие вопросы в StackOverflow, и ни один из них, похоже, не помогает и не предлагает решения, кроме их архивирования, что кажется неправильным, учитывая, когда они сделаны. используя общий лист в соответствующем приложении 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];

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


person BlueSpud    schedule 05.10.2015    source источник


Ответы (1)


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

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

person Dan    schedule 19.05.2016