2013-04-09 3 views
0

Мое приложение загружает pdf-файл, а затем нажатие кнопки выводит его в новом окне.Ошибка при попытке открыть загруженный pdf в новом окне

я получаю ошибку:

-[NSURL initFileURLWithPath:]: nil string parameter' 

После некоторого поиска неисправностей я возлагали эту проблему, чтобы где-то в этом фрагменте кода. Указанный путь находится в папке /Documents, где загружен загруженный pdf-файл. Таким образом, документ не находится в главном комплекте.

NSString *path = [[NSBundle mainBundle] pathForResource:PDFpathwithextension ofType:@"pdf"]; 
NSURL *url = [NSURL fileURLWithPath:path]; 
NSURLRequest *request = [NSURLRequest requestWithURL:url]; 

Вот код загрузки:

//Start an NSURL connection to download from the remotepath 
    NSData *pdfData = [[NSData alloc] initWithContentsOfURL:remotepathURL]; 

//Store the Data locally as PDF File 
    NSString *resourceDocPath = [[NSString alloc] initWithString:[[[[NSBundle mainBundle] resourcePath] stringByDeletingLastPathComponent] stringByAppendingPathComponent:@"Documents"]]; 

    NSString *filePath = [resourceDocPath stringByAppendingPathComponent:[newdata.ThirdPickerName stringByAppendingFormat:@".pdf"]]; 
    pdfData writeToFile:filePath atomically:YES]; 
+0

Технически вы видите здесь исключение, которое приводит к сбою –

ответ

0

Как NSURL говорит вам, вы передали его nil вместо действительного пути.

nil здесь означает, что такой ресурс не может быть найден этим именем. В самом деле, ваш вопрос предполагает, что вы хорошо это понимаете.

Поскольку вы утверждаете, что ваше приложение уже загружает PDF-файл, действительно ли оно записывает это на диск? Если это так, вы должны знать , где результирующий файл от этого. Если нет, сначала нужно написать фактический код загрузки!

+0

добавил код dowload, что-то выглядело подозрительно? – Bogiematch

+0

Вы должны использовать 'NSURLConnection' напрямую, чтобы избежать блокировки любых потоков (особенно основной). Также избегает наличия всего файла в памяти сразу –

+0

Ваш код для определения, куда помещать файл, является очень подозрительным. Используйте '- [NSFileManager URLForDirectory: inDomain: соответствующееForURL: create: error:]' вместо –