2013-04-09 33 views
0

我的應用下載PDF然後在按鈕按下時將其顯示在新視圖中。當試圖在新視圖中打開下載的pdf時崩潰

我得到的錯誤:

-[NSURL initFileURLWithPath:]: nil string parameter' 

一些故障排除我壓住了問題的地方在此代碼段後。指向的路徑位於下載的pdf所在的/Documents文件夾中。因此該文件不在主包中。

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

從技術上講,你在這裏看到一個異常,這導致崩潰 – 2013-04-09 15:54:32

回答

0

由於NSURL告訴你,你已經交給它的nil,而不是一個有效的路徑。

nil這裏表示沒有這樣的資源可以找到這個名字。事實上,你的問題表明你很清楚這一點。

既然你聲稱你的應用程序已經下載了一個PDF文件,它是否真的把它寫入磁盤?如果是這樣,你應該知道其中由此產生的文件。如果沒有,你首先需要寫下實際的下載代碼!

+0

添加了下載代碼,任何看起來可疑? – Bogiematch 2013-04-09 17:06:17

+0

你應該直接使用'NSURLConnection',以避免阻塞任何線程(尤其是主線程)。同時避免一次將所有文件放在內存中 – 2013-04-09 17:10:35

+0

您的代碼決定放置文件的位置非常可怕。使用' - [NSFileManager URLForDirectory:inDomain:appropriateForURL:create:error:]' – 2013-04-09 17:14:56

相關問題