显示的ALAsset使用QLPreviewController

问题描述:

我想用QLPreviewController从照片流 QLPreviewController需要一个NSURL时,它是作为 的/ var文件URL等显示项目显示的ALAsset使用QLPreviewController

这个伟大的工程显示ALAssets /移动/应用/ 5374 ...... 9E0 /文档/ image33.png

我有ALAsset 但是使用[资产defaultRepresentation] URL]给我一个NSURL类型
资产库://资产/asset.JPG?id=00000000-0000-0000-0000-000000000075 & ext = JPG

但是这不显示QLPreviewController只是继续显示加载?

任何想法? 在此先感谢

也许不是最快和最有效的方法,但它解决了问题。请使用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;