2016-09-27 5 views
0

Xcode 8.0을 사용하여이 문제가 나타납니다. 문제는 파일을 다운로드하고 문서 디렉토리 (아래 제공된 코드)에 저장 한 후 QLPreviewController은 문서의 이름과 크기 만 표시한다는 것입니다. 속성 currentPreviewItem은 올바른 경로 문서를 반환합니다. 더 이상한 점은 내 응용 프로그램의 다른 컨트롤러에서 해당 문서를 열려고하면 제대로 작동한다는 것입니다. QLPreviewControllerDelegateQLPreviewControllerDataSource을 모두 구현했습니다. 문서를 다운로드 및 저장을위한QLPreviewController 저장된 파일을 표시하지 않습니다.

코드 : 사용자가 선택하면

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{ 
    NSURL *url = [NSURL URLWithString:file[@"url"]]; 

    NSData *data = [NSData dataWithContentsOfURL:url]; 

    if (!data) { 
     completion([NSError new]); 
     return; 
    } 

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 

    NSString *path = [[paths objectAtIndex:0] stringByAppendingPathComponent:AppName]; 
    path = [path stringByAppendingPathComponent:file[@"name"]]; 

    file[@"filePath"] = [NSURL fileURLWithPath:path]; 

    dispatch_async(dispatch_get_main_queue(), ^{ 
     [[NSFileManager defaultManager] createFileAtPath:path contents:data attributes:nil]; 
     completion(nil); 
    }); 
}); 

그럼, "여기서 filePath" @에 저장된 콘텐츠를 사용하여 문서는 QLPreviewController를 표시합니다. 내가 그것을 시도하고 그것을 모달로 제시하고 두 경우 모두 그냥 문서의 이름과 크기와 회색 페이지를 표시합니다.

+0

프로젝트를 github에 업로드 할 수 있습니까? 그래서 세부 사항을 알 수 있습니다. 감사합니다. – aircraft

+0

@ QQ726535609 안녕하세요. 개인이 아니기 때문에 프로젝트를 공유 할 수 없습니다. 그러나 필요한 정보가 무엇인지 알려 주시면 알려 드리겠습니다. 감사! – bperezme

+0

다운로드 한 컨텐츠가 유효하다고 확신하는 경우, bugreport.apple.com에 레이더 파일을 작성해야합니다. – Raffael

답변

0

다운로드 한 내용에 파일의 확장자가 없으므로 파일이 표시되지 않았습니다. 다른 컨트롤러에서 열려고 시도했을 때 올바른 확장명을 포함하는 다른 파일 이름을 임시로 사용했기 때문에 작동했습니다. 그래서 나는 그것을 포함하지 않은 다운로드 파일에 확장자 .pdf를 추가하는 문제를 해결했다. 이로 인해 QLViewController가 파일을 올바르게 표시합니다.

0

필자의 경우 올바른 이름으로 파일을 만들었지 만 파일에 서버의 오류 메시지가 포함되어있어 예상되는 파일 구조를 나타내지 않았습니다.

관련 문제