将pdf存储在本地不在iphone中工作

时间:2011-12-21 11:26:13

标签: iphone objective-c ios

我是iPhone开发的新手。我想使用url下载pdf,并希望将其存储在本地文件夹中。

这是我的代码:

NSData *d = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:@"http://demo.com/ebookapplication/book_pdf/20111108094614hii.pdf"]];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"myfile.pdf"]; 
[d writeToFile:path atomically:YES];
if (![[NSFileManager defaultManager] fileExistsAtPath:path])
{
NSString *myPathInfo = [[NSBundle mainBundle] pathForResource:@"myfile" ofType:@"pdf"];
    NSFileManager *fileManager = [NSFileManager defaultManager];
    [fileManager copyItemAtPath:myPathInfo toPath:path error:NULL];
}
 NSURL *pdfurl = [NSURL fileURLWithPath:path];
 NSURLRequest *requestObj = [NSURLRequest requestWithURL:pdfurl];
[detail.bookweb loadRequest:requestObj];//to display data in web view

此代码适用于使用url在Web视图中显示pdf,但它不适用于在本地系统中存储pdf。实际上我想将这些下载的pdf存储在一个文件夹中,并以库格式显示。请帮忙。

1 个答案:

答案 0 :(得分:0)

-writeToFile:原子上已将您的文件放在-copyItemAtPath:toPath:方法中指定的文件夹中,因此是多余的。该文档已经在文档目录文件夹中,然后将其复制到同一目录中!我认为这是你的问题。

编辑:

这条线在这里:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"myfile.pdf"]; 

指定您的路径。

您可以NSLog使用此行:NSLog(@"Document Path = %@", path);

至于你的图书馆评论,它应该不那么难。我的应用程序,基本上已经这样做,连线 AQGridView:https://github.com/AlanQuatermain/AQGridView

来自DITableView的Apple的Docwatcher课程:http://developer.apple.com/library/ios/samplecode/DocInteraction/Listings/Classes_DITableViewController_h.html

一起创建一个应用程序,用于控制文档目录并将文件添加到NSArray,然后由网格显示。一个更简单的方法就是使用DITableViewController,考虑到它可以解决你的问题,只是网格更多的是比萨饼。