2015-10-02 27 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