0
要序列化pdf,我相信你可以使用NSData dataWithURL:
並存儲在Core Data中。我不確定你將如何反序列化爲pdf然後用UIWebView查看它。如何在Core Data iOS中序列化和反序列化pdf?
要序列化pdf,我相信你可以使用NSData dataWithURL:
並存儲在Core Data中。我不確定你將如何反序列化爲pdf然後用UIWebView查看它。如何在Core Data iOS中序列化和反序列化pdf?
您可以使用CGPDFDocumentCreateWithProvider
:
如果你的NSData引用pdfData
則:
CFDataRef myPDFData = (CFDataRef)pdfData;
CGDataProviderRef provider = CGDataProviderCreateWithCFData(myPDFData);
CGPDFDocumentRef pdf = CGPDFDocumentCreateWithProvider(provider);
但我猜你只是想在Web視圖中顯示它和上面是不是你所需要的。
但是,如果您已經有了url,那麼存儲URL而不是像PDF這樣更容易。
此外,如果您有數據,您可以暫時將它寫入文檔目錄內的文件中,然後使用web視圖加載此url。
即;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *appFile = [documentsDirectory stringByAppendingPathComponent:@"New1.pdf"];
NSURL *fileURL = [NSURLRequest requestWithURL:appFile];
[data writeToURL:fileURL atomically:YES];
然後:
NSURLRequest *request = [NSURLRequest requestWithURL:fileURL];
[webView loadRequest:request];
如果你想刪除從文件目錄中的文件,你可以使用:
[[NSFileManager defaultManager] removeItemAtURL:fileUrl error:nil];
刪除您創建的臨時PDF文件。
另一種選擇是將您的PDF文件託管在某個Web服務器上,然後從該服務器下載PDF數據並將其保存/緩存到設備上。這將使商店下載(特別是通過手機),並讓用戶更快地進入你的應用。 – 2013-04-04 00:26:30
我意識到這實際上是兩個問題。您提供意見的人在這裏:http://stackoverflow.com/questions/15800589/loading-images-from-appbundle-vs-coredata。另外,如果我的用戶在離開wifi或手機數據之前沒有進入應用程序,該怎麼辦?第一次運行此應用程序時,顯示錯誤說明您必須處於聯機狀態,這是不錯的做法嗎? – 2013-04-04 00:29:13
你不是序列化你只是存儲二進制數據。然後,您可以使用loaddata方法加載nsdata對象,只需設置正確的MIME類型即可。 – Bushbert 2013-04-04 01:04:44