在哪里存储创建的PDF文件?

时间:2011-12-14 09:33:11

标签: ios xcode pdf store

出现以下错误:

CGDataConsumerCreateWithFilename: failed to open `/name' for writing: Permission denied.

使用此代码(不是我的):

- (void)createPDFWithName
{
//NSURL * newFilePath = [[NSURL alloc] initFileURLWithPath:name];
NSString * newFilePath = @"name";

CGRect page = CGRectMake(0, 0, 300, 300);

NSDictionary * metaData = nil;

if (!UIGraphicsBeginPDFContextToFile(newFilePath, page, metaData )) {
    NSLog(@"error creating PDF context");
    return;
}

UIGraphicsBeginPDFPage();
[self.tableView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIGraphicsEndPDFContext();
}

那么:我应该在哪里存储这个PDF文件?我尝试了NSBundle MainBundle这件事,但它也没有用。

谢谢!

2 个答案:

答案 0 :(得分:3)

您应该阅读文件系统上可以创建文件的各个位置。其中一个是文档路径,下面是一个例子。

- (NSString *)documentPath {
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentPath = ([paths count] > 0) ? [paths objectAtIndex:0] : nil;
    return documentPath;
}

NSString * newFilePath = [[self documentPath] stringByAppendingPathComponent:@"name.pdf"];

答案 1 :(得分:2)

扩展Alex的回答

文档目录是您应该考虑存储PDF的唯一位置。它是唯一的文档存储,Apple保证应用程序创建的内容的持久性,并将在升级之间保持等等。

你不能将东西推入你的MainBundle,因为捆绑在你的应用程序的整个生命周期中保持不变