- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 XMLReader 类从 URL 解析一些 XML。 XML 有时被成功解析,有时我得到:
Error Domain=NSXMLParserErrorDomain Code=4 “操作无法完成。(NSXMLParserErrorDomain 错误 4。)”
解析通常在我第一次运行时成功,在更改某些内容之后,然后它会失败,直到我更改其他内容。例如,在下面的代码中,我尝试注释掉 [parser release] 行,并成功解析。然后我再次运行它并返回到错误代码 4。
我每次都记录相同的输入数据,无论成功还是失败。
知道这里出了什么问题吗?如果有帮助,我可以粘贴更多代码,但我已将错误隔离在 NSXMLParser 解析方法(在下面的代码中调用)中,因为它始终接收相同的数据。
谢谢!
编辑:我知道错误代码 4 是空文档错误。但我知道我的 NSData 不是空的。所以这里还有其他事情发生
- (NSDictionary *)objectWithData:(NSData *)data
{
//data always makes it here, the same data gets logged regardless of parse success
//NSLog(@"%@",data);
// Clear out any old data
[dictionaryStack release];
[textInProgress release];
dictionaryStack = [[NSMutableArray alloc] init];
textInProgress = [[NSMutableString alloc] init];
// Initialize the stack with a fresh dictionary
[dictionaryStack addObject:[NSMutableDictionary dictionary]];
// Parse the XML
NSXMLParser *parser = [[NSXMLParser alloc] initWithData:data];
parser.delegate = self;
[parser setShouldResolveExternalEntities:NO];
BOOL success = [parser parse];
[parser release];
// Return the stack's root dictionary on success
if (success)
{
NSDictionary *resultDict = [dictionaryStack objectAtIndex:0];
return resultDict;
}
return nil;
}
最佳答案
问题不在于方法objectWithData
开头的data
是否正确;通过parse方法计算,data
是否正确。您应该在解析器完成后检查数据
的完整性。
很可能 data
由 XMLReader 返回,但您没有正确保留它。有时,计算密集型解析器会强制进行垃圾收集(或池回收),并且 data
会损坏。
只需在objectwithData
方法的开头执行[data retain]
;然后问题就会消失。
关于ios - 当 NSData 输入始终相同时,NSXMLParser 有时只会给出错误代码 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10856424/
现在我正在尝试实现 flash programming specification对于 PIC32MX。我正在使用 PIC32MX512L 和 PIC32MX512H。 PIC32MX512L最终必须
我是一名优秀的程序员,十分优秀!