该操作无法完成。 (可可错误260.)

时间:2013-05-06 08:32:02

标签: iphone ios objective-c ipad cocoa-touch

我是IOS开发的新手,我正在开发一个pdf应用程序,我需要在NSData变量上存储一个PDF文件,我有PDF路径,但是当我尝试将此pdf放入时,我收到此消息错误在使用 dataWithContentsOfFile 的NSData变量上,她是我的简单代码:

NSError *error;
NSString *PdfPath = [NSString stringWithFormat:(@"%@"),document.fileURL ];
NSString *newPath = [PdfPath stringByReplacingOccurrencesOfString:@"file://localhost" withString:@""];
NSLog(@"OriginalPdfPath => %@", newPath);
NSData *pdfData = [NSData dataWithContentsOfFile:newPath options:NSDataReadingUncached error:&error];

注意:pdf路径采用以下格式: /Users/bluesettle/Library/Application%20Support/iPhone%20Simulator/6.0/Applications/BBEF320E-7E2A-49DA-9FCF-9CFB01CC0402/ContractApp.app/Pro .iOS.Table.Views.pdf

感谢您的帮助

2 个答案:

答案 0 :(得分:8)

可可错误260是NSFileReadNoSuchFileError(如FoundationErrors.h中所列),表示在您指定的路径中找不到该文件。

问题是您的路径仍然包含编码空格(%20),因为您将其基于URL。你可以这样做:

NSData *pdfData = [NSData dataWithContentsOfFile:[document.fileURL path]];

答案 1 :(得分:1)

尝试使用NSBundle

NSString *newPath = [[NSBundle mainBundle] pathForResource:@"filename" ofType:@"pdf"]

编辑:

您可以使用bundleWithPath方法,这是一个示例:

NSString *documentsDir= [NSString stringWithFormat:@"%@/Documents", NSHomeDirectory()];

NSString *newPath= [[NSBundle bundleWithPath:documentsDir] bundlePath];