2015-10-02 26 views
0

我怎么能转换NSUrlQLPreviewItem?在QLPreviewItem .H,写了下面的类别,使NSURL实例作为预览控制器适合项目:更改NSURL到QLPreviewItem

@interface NSURL (QLPreviewConvenienceAdditions) <QLPreviewItem> 

我如何使用它,如果在我的代码有:

- (id <QLPreviewItem>) previewController: (QLPreviewController *) controller previewItemAtIndex: (NSInteger) index 
{  
     NSString *path=[[NSBundle mainBundle] pathForResource:[filenamesArray objectAtIndex:index] ofType:nil]; 
     NSURL *url = [NSURL fileURLWithPath:path]; 
     return //QLpreview item from URL; 
} 

回答

2

你可以返回NSURL,它会工作。

我一直在使用这样的:

if([downloadData writeToURL:self.fileUrl options:NSDataWritingAtomic error:&error]) 
(...) 

然后我用同样的网址为QLPreviewItem:

- (id <QLPreviewItem>)previewController:(QLPreviewController *)controller previewItemAtIndex:(NSInteger)index 
{ 
    return self.fileUrl; 
} 
+0

它的工作原理;但我得到一个警告:返回“NSURL * __强”从不兼容的结果类型的函数“身份证 _Nonnull” –

+0

这很奇怪。 QLPreviewItem还定义了一个NSURL类,使简单的传递NSURL的作为回报。或者,你可以让自己的类,它实现QLPreviewItem协议。 – Board