TouchXML более проблема выпуска - PullRequest
1 голос
/ 30 июля 2011

Я получаю ошибку 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 или я что-то упустил?

Подобный вопрос здесь, но нет действительных ответов: Странный сбой, если я пытаюсь выпустить CXMLDocument

Ответы [ 3 ]

0 голосов
/ 23 августа 2011

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

0 голосов
/ 24 сентября 2013

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

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

0 голосов
/ 30 июля 2011

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

NSArray *foundRoots = [theXMLDocument nodesForXPath:@"//Root"  error:&xmlError]; 
CXMLElement Root = [foundRoots objectAtIndex:0];
...