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

Posted

技术标签:

【中文标题】操作无法完成。 (可可错误 260。)【英文标题】:The operation couldn’t be completed. (Cocoa error 260.) 【发布时间】:2013-05-06 08:32:02 【问题描述】:

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

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

感谢您的帮助

【问题讨论】:

lPdfPath 是什么?为什么要替换子字符串? NSLog 行的 newPath 的输出是什么? 我的意思是 PdfPath 它只是一个错误,我替换了字符串,因为我发现路径需要没有“file://localhost”前缀并且 NSlog 的输出是“/Users/ bluesettle/Library/Application%20Support/iPhone%20Simulator/6.0/Applications/BBEF320E-7E2A-49DA-9FCF-9CFB01CC0402/ContractApp.app/Pro.iOS.Table.Views.pdf" 【参考方案1】:

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

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

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

【讨论】:

我使用 [lPdfPath stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 从路径中删除了 %20,620 错​​误消失了,但我得到了 NSData = (Null) 当我使用 absoluteString 时,我总是在路径上得到 %20,这就是为什么我使用 stringByReplacingPercentEscapesUsingEncoding @hatimhaffane 啊,对不起,你是对的。已编辑帖子以提供可行的解决方案。 谢谢你,但仍然得到 NSData 变量,因为 Null 我会尝试找到解决方案 当前的解决方案绝对有效。如果你使用&error的方法,它会说什么?【参考方案2】:

尝试使用NSBundle

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

编辑:

你可以使用bundleWithPath方法,这里是一个例子:

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

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

【讨论】:

对我来说,我需要使用不在资源文件夹中的文件

以上是关于操作无法完成。 (可可错误 260。)的主要内容,如果未能解决你的问题,请参考以下文章

操作无法完成。 (可可错误 1560。)

保存到数据存储失败:操作无法完成。 (可可错误 133020。)

由于可可豆荚中的内部保护错误快速类功能而无法访问

无法将 sqlite 文件从应用程序包复制到文档目录:获取(Cocoa 错误 260)

可可无法连接动作

NSCocoa错误代码260