2013-04-16 4 views
0

PDF 파일을 생성 중이며 아래에 표시된대로 미리 보려고 시도하지만 URL은 형식에 관계없이 NIL을 반환합니다. 이는 일반적인 문제로 다른 모든 사람들의 문제를 해결하는 것으로 보입니다. 나는 더 많은 것을 놓치고 있어야합니다. 어떤 아이디어?NSURL은 항상 인코딩을 무시합니다.

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]; 

게시 한 코드에서 파일 이름을 입력하지 마십시오. Documents 디렉토리와 pdf 확장자가 있습니다. 이 경우 URL을 "퍼센트 이스케이프"할 필요가 없습니다.

0

당신은 아마 당신의 파일의 경로를 구하는 방법의 혼동 : NSSearchPathForDirectoriesInDomains은 (예를 들어) 문서 디렉토리에 대한 절대 경로를 가져 오는 데 사용됩니다. 반면 NSBundleURLForResource:withExtension:은 app 래퍼에서 제공된 이름으로 파일을 검색합니다.

둘을 혼용하면 좋지 않습니다. 아마도 문서 디렉토리를 살펴 봐야 할 것입니다.