2013-02-09 6 views
3

나는 그것이 의/var와 같은 파일의 URL 인 경우이 위대한 작품을 항목표시 QLPreviewController

를 표시 할 NSURL을 필요로 QLPreviewController 사진 스트림 에서 ALAssets을 표시 QLPreviewController를 사용 꿔을/사용 ALAsset 모바일/응용 프로그램/5374 ...... 9E0/문서/image33.png

나는 그러나 나에게 NSURL 유형
자산 라이브러리 제공 [] URL을 [자산 defaultRepresentation]를 사용하여 ALAsset 이 : // 자산을 /asset.JPG?id=00000000-0000-0000-0000-000000000075 & ext = JPG

그러나 이것은 표시되지 않습니다. QLPreviewController는로드를 계속 표시합니다. ??

아이디어가 있으십니까? 미리 감사드립니다.

답변

0

아마도 가장 빠르고 효율적인 방법은 아니지만 문제를 해결할 수 있습니다. 문서에서 NSFilemanager 대신 NSTemporaryDirectory를 사용하십시오 :-) ImageIO.framework에 대한 링크를 확인하십시오.

#import <ImageIO/ImageIO.h> 

    .... 
    NSURL *outURLToUseWithQLPreviewController = nil; 

    ALAsset *myAsset = ... // received somehow 
    ALAssetRepresentation *represent = myAsset.defaultRepresentation; 
    CGImageRef representFullScreen = represent.fullScreenImage; 

    NSString *tempDir = NSTemporaryDirectory(); 
    NSString *imagePath = [tempDir stringByAppendingPathComponent:represent.filename]; 
    NSURL *tempURL = [NSURL fileURLWithPath:imagePath]; 

    CGImageDestinationRef destination = CGImageDestinationCreateWithURL((__bridge CFURLRef)(tempURL), (__bridge CFStringRef)(represent.UTI), 1, NULL); 
    CGImageDestinationAddImage(destination, representFullScreen, nil); 
    if (CGImageDestinationFinalize(destination)) { 
     outURLToUseWithQLPreviewController = tempURL; 
    } 
    return outURLToUseWithQLPreviewController;