xmlParser解析导致iOS8崩溃,但在iOS 7中运行良好?

时间:2014-08-13 03:10:05

标签: ios parsing crash

在模拟器上运行,[xmlParser parse]会导致iOS 8崩溃,但在iOS7中运行正常。我发现iOS 7和iOS 8之间没有任何关于NSXMLParser的区别。

相关:

NSData *data = [[NSData alloc] initWithContentsOfFile:xmlFilePath];
NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithData:data];
[xmlParser setDelegate:self];
BOOL success = [xmlParser parse];//crash at this line.

2 个答案:

答案 0 :(得分:1)

在IOS 8中,NSXMLParser不支持可重入解析。我非常确定在您指定的行上导致的崩溃是由于可重入解析(即在NSXMLParser的委托方法中设置委托)。吨ake a look at this question

希望它有所帮助。

答案 1 :(得分:0)

检查您的XML是否包含零大小的不可破坏空间UTF-8符号(也称为utf编码签名),代码为xFEFF;属性值中的此符号会导致iOS8解析器字符串释放错误和崩溃。要在PHP后端中删除此字符串,请使用:

$char = mb_convert_encoding('', 'UTF-8', 'HTML-ENTITIES');
$xml = str_replace(array($char, '&#FEFF;'),'',$xml);