Сбой NSXMLParser на неверном XML - PullRequest
1 голос
/ 05 мая 2011

У меня есть синтаксический анализатор, работающий правильно, когда ввод в правильной форме XML. Могу ли я узнать, когда документ XML отформатирован неправильно, и восстановить его без сбоя моего приложения?

NSXMLParser * xmlParser = [[NSXMLParser alloc] initWithData: xmlData]; [xmlParser setDelegate: self]; [xmlParser setShouldResolveExternalEntities: YES]; success = [xmlParser parse];

Приложение вызывает сбой при вызове [xmlParser parse] и не вызывает мой метод делегата parseErrorOccurred.

EDIT
Это не имеет никакого отношения к парсеру, который вызывал мой метод делегата parseErrorOccurred. Причиной проблемы был недосмотр вызова NSLog.

1 Ответ

2 голосов
/ 05 мая 2011

Итак, NSXMLParserDelegate имеет метод parser:parseErrorOccurred:, который предположительно вызывается при возникновении фатальной ошибки, поэтому вы можете отследить ее и решить, как поступить (вся информация, которую вы проанализировали до сих пор, доступна).

Я предполагаю, что происходит сбой, потому что анализатор не возвращает ожидаемое от него, поэтому, если вы поймете, что происходит ошибка, и попытаетесь исправить данные и / или заменить что-то необходимое, ваше приложение больше не должно аварийно завершать работу.

...