2013-04-09 5 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]; 

여기 다운로드 코드입니다 : NSURL으로

//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

당신을 말하고있다, 당신은 그것을 nil 대신 올바른 경로로 넘겨했습니다.

nil 여기에는 해당 이름으로 찾을 수있는 리소스가 없음을 의미합니다. 사실, 당신의 질문은 당신이 잘 알고 있음을 암시합니다.

앱에서 이미 PDF를 다운로드했다고 주장 했으므로 실제로 디스크에 기록합니까? 그렇다면 을 알아야합니다. 여기서 결과 파일은입니다. 그렇지 않다면, 먼저 실제 다운로드 코드를 작성해야합니다!

+0

에 dowload 코드가 추가 되었습니까? – Bogiematch

+0

모든 스레드 (특히 주 스레드)를 막지 않으려면'NSURLConnection'을 직접 사용해야합니다. 한 번에 전체 파일을 메모리에 저장하는 것을 피합니다. –

+0

파일을 둘 위치를 결정하는 코드가 매우 비웃습니다. –

관련 문제