2013-04-16 2 views
0

Я создаю PDF-файл и пытаюсь просмотреть его, как показано ниже, но URL-адрес обычно возвращает NIL, несмотря на мое форматирование (что, как представляется, разрешает проблему остальных с этой общей проблемой). Я должен упустить что-то еще. Есть идеи?NSURL всегда nil dispite encoding

NSArray *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);  
NSString *docDirectory = [path objectAtIndex:0]; 

    docDirectory = [docDirectory stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 

    NSURL *URL = [[NSBundle mainBundle] URLForResource:docDirectory withExtension:@"pdf"]; 
if (URL) { 
    // Initialize Document Interaction Controller 
    self->documentInteractionController = [UIDocumentInteractionController interactionControllerWithURL:URL]; 
    // Configure Document Interaction Controller 
    [self->documentInteractionController setDelegate:self]; 
    // Preview PDF 
    [self->documentInteractionController presentPreviewAnimated:YES]; 
} 

ответ

1

Ваше создание пути кажется все из-под удара. Попробуйте что-то вроде этого:

NSArray *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);  
NSString *docDirectory = [path objectAtIndex:0]; 
NSString *filename = @"myfile.pdf"; // replace with the actual filename you used 
NSString *fullPath = [docDirectory stringByAppendingPathComponent:filename]; 
NSURL *fullURL = [NSURL fileURLWithPath:fullPath]; 

В коде, который вы отправили, вы не указали имя файла. У вас есть папка «Документы» и расширение PDF. И в этом случае нет необходимости «переводить проценты» в URL.

0

Вы, вероятно, путают о том, как получить путь к файлу: NSSearchPathForDirectoriesInDomains используется, чтобы получить абсолютный путь к (например) каталога документов. NSBundleURLForResource:withExtension:, с другой стороны, ищет оболочку приложения для файла с предоставленным именем.

Смешивание двух не принесет пользы. Возможно, вам стоит просто заглянуть в каталог документов.

Смежные вопросы