下载pdf并将其保存到应用程序中

时间:2010-12-25 12:21:21

标签: iphone objective-c ipad

在我的应用中,我必须连接网址并下载pdf文件。我试过[uiapplication sharedapplication:url];但它对我来说根本不起作用。那么有人可以建议我如何下载PDF并将其保存在我的应用程序中吗?

谢谢大家。

1 个答案:

答案 0 :(得分:2)

一个不太好的解决方案,但易于实现,是进行同步下载。例如,要下载google的根页面,您可以这样做:

NSData *d = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:@"http://www.google.com"]];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *file = [documentsDirectory stringByAppendingPathComponent:@"goog.html"];
[d writeToFile:file atomically:YES];

这不是很好,原因有两个:

  1. 它将文件存储在内存中,因此不适用于大文件
  2. 它是同步的,因此如果你在主线程中运行它会在发生下载时冻结你的应用程序
  3. 更好的解决方案是使用NSURLConnection并进行异步下载。在NSURLConnection委托中,在下载开始时创建文件,并将数据附加到 - (void)连接:(NSURLConnection *)连接didReceiveData:(NSData *)d方法。查看NSURLConnection,NSFileManager和NSFileHandle类。