我正在使用我的iPhone访问我的PHP服务器中可用的PDF文件,并将文件URL传递给CGPDFDocumentCreateWithURL。我的问题是每当我访问它将下载到我的iphone文档目录的文件?
因为如果我的应用程序处于活动状态一段时间我收到错误CFURLCreateDataAndPropertiesFromResource,错误代码为-14。收到此错误后,我的应用程序没有崩溃,但它无法正常运行。
我无法理解内部流程?请帮我解决这个问题?
答案 0 :(得分:2)
我认为你误解了CGPDFDocumentCreateWithURL
的作用。它不会将PDF文档下载到文件系统。它根据提供的URL在内存中创建PDF。它不会向文件系统保存任何内容。
我强烈建议您使用网络类(NSURLConnection,ASI等)首先下载PDF ,然后再打开它。这将使您能够提供更好的反馈,并支持更高级的下载功能,例如恢复部分下载,提供进度以及更好的线程管理。
答案 1 :(得分:0)
保存PDF
NSString *urlString = @"http://www.web.com/url/for/document.pdf";
NSURL *url = [NSURL URLWithString:urlString];
NSData *data = [NSData dataWithContentsOfURL:url];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *pdfPath = [documentsDirectory stringByAppendingPathComponent:@"myLocalFileName.pdf"];
[data writeToFile:pdfPath atomically:YES];
然后将保存的文件加载到Web视图中:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *pdfPath = [documentsDirectory stringByAppendingPathComponent:@"myLocalFileName.pdf"];
NSURL *url = [NSURL fileURLWithPath: pdfPath];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[[self mainWebView] loadRequest:request];