Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
NSXMLParserErrorDomain错误5的含义是什么。?_Xml_Cocoa_Nsxmlparser - Fatal编程技术网

NSXMLParserErrorDomain错误5的含义是什么。?

NSXMLParserErrorDomain错误5的含义是什么。?,xml,cocoa,nsxmlparser,Xml,Cocoa,Nsxmlparser,好了,我又回到这个任务上来了。我让我的XML从我的Web服务器正确下载,URL指向服务器的文件,但是,当我检测到网络“不可访问”时,我只需将URL指向我的应用程序的本地XML,我得到以下错误(注意,该文件是服务器上的文件的直接副本) 我找不到详细的描述,但我想它是说URL指向一个无法访问的位置。我是否将此资源存储在错误的位置?我想我想把它放在家庭目录/图书馆 调试输出 loadMyXml: /var/mobile/Applications/950569B0-6113-48FC-A184-4F1B

好了,我又回到这个任务上来了。我让我的XML从我的Web服务器正确下载,URL指向服务器的文件,但是,当我检测到网络“不可访问”时,我只需将URL指向我的应用程序的本地XML,我得到以下错误(注意,该文件是服务器上的文件的直接副本)

我找不到详细的描述,但我想它是说URL指向一个无法访问的位置。我是否将此资源存储在错误的位置?我想我想把它放在家庭目录/图书馆

调试输出

loadMyXml: /var/mobile/Applications/950569B0-6113-48FC-A184-4F1B67A0510F/MyApp.app/SampleHtml.xml 2009-10-14 22:08:17.257 MyApp[288:207] Wah! It didn't work. Error Domain=NSXMLParserErrorDomain Code=5 "Operation could not be completed. (NSXMLParserErrorDomain error 5.)" 2009-10-14 22:08:17.270 MyApp[288:207] Operation could not be completed. (NSXMLParserErrorDomain error 5.) loadMyXml:/var/mobile/Applications/950569B0-6113-48FC-A184-4F1B67A0510F/MyApp.app/SampleHtml.xml 2009-10-14 22:08:17.257MyApp[288:207]哇!它不起作用。错误域=NSXMLParserErrorDomain代码=5“操作无法完成。(NSXMLParserErrorDomain错误5)。” 2009-10-14 22:08:17.270 MyApp[288:207]操作无法完成。(NSXMLParserErrorDomain错误5。)
据戴夫·德隆说

这意味着它在解析您的文件时遇到问题

我认为它可能是XML中的XSLT引用,因为它指向Web服务器。我将回顾并用改进的答案回到这个问题

这是文件的路径。我的代码甚至没有接近正确的位置——而且我缺少了一个尾随字母“s”。错误代码定义意味着“文件过早结束”,这导致我截短了文件,但没有成功。然后,我回到基础,在文件系统上迭代以查找我的文件

我通过使用NSFileManager迭代到我的文件进行调试,然后验证是否可以使用contentsAtPath方法加载该文件。我可以使用NSLog()转储它。一旦我确信该文件格式正确并以原始形式加载,我就确定我的NSURL是用相同的语法和方法构造的。然后它正确加载。现在,我可以加载网络文件“全功能”内容或本地“示例”内容

输出

2009-10-22 00:47:40.147 MyApp[13843:20b]

顺便说一句,我希望我在这里的表述能对其他人在调试数据处理时有所帮助。

苹果公司的解释是:

错误的解释是:

NSXMLParserPrematureDocumentEndError

The document ended unexpectedly.

Available in Mac OS X v10.3 and later.

Declared in NSXMLParser.h.

与接受的答案相同,我也遇到了类似的问题,因为我使用以下方法加载文件:

[NSURL URLWithString:pathToFile];  // **Wrong**
相反,这应该是:

[NSURL fileURLWithPath:pathToFile];

我也花了很长时间研究我的文件如何可能格式不好、可能丢失等等,然后才意识到这是一个如此简单的细微差别

顺便说一句,我后来在SDK文档中找到了枚举。这是非常有用的,虽然不是完全直观的。我有一个类似的问题,因为我在加载我的文件时使用了
[NSURL URLWithString:pathToFile][NSURL fileURLWithPath:pathToFile]我也花了很长时间研究我的文件可能格式不好、可能丢失等等,然后才意识到这是一个如此简单的细微差别。不,他也没有和我一起工作。。。不过我还是得到了第五个错误。谢谢迈克尔。显然,当文件名不正确时,也会返回错误。戴夫·德隆(见上图)的回答让我犯了错误。我还注意到我找到了文档。是的!这种差异是微妙的,并隐藏在文档中。这是个好主意+1.
NSXMLParserPrematureDocumentEndError

The document ended unexpectedly.

Available in Mac OS X v10.3 and later.

Declared in NSXMLParser.h.
[NSURL URLWithString:pathToFile];  // **Wrong**
[NSURL fileURLWithPath:pathToFile];