我正在尝试在SQLite中保存pdf文件。我认为将pdf文件保存为blob是可能的。问题从这里开始,如何在iPhone应用程序中查看该文件? 我知道可以使用以下代码完成: -
@interface PDFViewController : UIViewController {
UIWebView *webView;
NSURL *pdfUrl;
}
@property (nonatomic, retain) IBOutlet UIWebView *webView;
@property (nonatomic, retain) NSURL *pdfUrl;
@end
@implementation PDFViewController
@synthesize webView, pdfUrl;
- (void)viewDidLoad {
[super viewDidLoad];
// Tells the webView to load pdfUrl
[webView loadRequest:[NSURLRequest requestWithURL:pdfUrl]];
}
但是pdfUrl
的价值应该是什么,我很困惑......
如果我从数据库中检索它,它将采用blob格式(methinks),那么如何将其转换为NSdata
对象?
谢谢大家。
答案 0 :(得分:3)
问题是WebView执行URL加载,并且它不会理解非http请求之类的内容;但您的应用程序正在尝试提供数据。所以基本上,你运气不好,除非你可以将sqbite数据库中的blob反序列化,将其写入文件(在/ tmp中,比如说),然后从NSWebView打开一个file:/// URL - 但是我不相信这个对象会让你这样做。
你可能能够调用[UIWebView loadData:MIMEType:textEncodingName:baseURL:]方法,这将允许您从sqllite数据库中提取NSData blob,提供mime类型application / pdf,坚持使用虚拟文本编码(UTF-8)和基本URL,然后它可以做你想要的。但我至少会尝试这样做。
答案 1 :(得分:1)
pdfUrl是您尝试从网站下载的PDF的网址。 (即http://website.com/mypdf.pdf)
阅读有关NSData的文档,它有一个方法可以让你根据你使用sqlite提取的内容来创建NSData对象。