Проблема TouchXML с выпуском

Я получаю сообщение об ошибке EXEC_BAD_ACCESS при выпуске CXMLDocument.

Вот мой очень простой код, который не имеет зависимостей:

@implementation TestViewController

- (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];

    NSError *xmlError = nil;    
    CXMLDocument *xmlDoc = [[CXMLDocument alloc] initWithXMLString:@"<test></test>" options:0 error:&xmlError];
    CXMLElement *rootElement = [xmlDoc rootElement]; // Unused local variable   
    [xmlDoc release];
}

Если я закомментирую CXMLElement *rootElement = [xmlDoc rootElement]; или оставлю его, ошибки не будет.

Как вызов [xmlDoc rootElement] может привести к тому, что xmlDoc будет выпущен? Это ошибка TouchXML или я упускаю что-то действительно простое?

Аналогичный вопрос здесь, но нет действительных ответов: Странный сбой, если я попытаюсь выпустить CXML-документ


person Brandon O'Rourke    schedule 29.07.2011    source источник


Ответы (3)


Это правильный способ получить rootElement? Я никогда не использовал TouchXML, но из того, что я могу найти, кажется, что получение rootElement выполняется соответствующим образом.

NSArray *foundRoots = [theXMLDocument nodesForXPath:@"//Root"  error:&xmlError]; 
CXMLElement Root = [foundRoots objectAtIndex:0];
person Man of One Way    schedule 29.07.2011
comment
Я думаю, что это эквивалентно моему коду. Я получаю ту же ошибку EXEC_BAD_ACCESS. - person Brandon O'Rourke; 30.07.2011
comment
Вы уверены, что в вашем xml есть какие-либо корни? Нет ли там опечаток? - person Man of One Way; 30.07.2011
comment
Да, он находит один корень @//test в этом XML: @‹test›Test!‹/test› - person Brandon O'Rourke; 30.07.2011

Сбой исчезает, когда я отключаю Guard Malloc. Если предположить, что Guard Malloc надежен, это выглядит как ошибка Touch XML.

person Brandon O'Rourke    schedule 23.08.2011

Я использовал TouchXML довольно часто, и (к счастью?) у меня не было этой проблемы до сих пор, но это просто произошло...

Я разместил решение здесь: Сбой памяти с использованием [CXMLNode nodesForXPath ] с сопоставлениями пространств имен

person TheEye    schedule 24.09.2013