Я многое узнал об управлении памятью, но одна эта проблема заставляет меня задуматься.
В методе класса я создаю переменную:
TBXMLElement *pieceXML = [TBXML childElementNamed:@"piece"
parentElement:rootElement];
И освобождаю ее в концеметода:
[pieceXML release];
Но я получаю ошибку: Invalid receiver type 'TBXMLElement *'
Реализация childElementNamed:parentElement:
ниже
+ (TBXMLElement*) childElementNamed:(NSString*)aName parentElement:(TBXMLElement*)aParentXMLElement{
TBXMLElement * xmlElement = aParentXMLElement->firstChild;
const char * name = [aName cStringUsingEncoding:NSUTF8StringEncoding];
while (xmlElement) {
if (strlen(xmlElement->name) == strlen(name) && memcmp(xmlElement->name,name,strlen(name)) == 0) {
return xmlElement;
}
xmlElement = xmlElement->nextSibling;
}
return nil;
}
Я пытаюсь понятькак я могу предсказать, что это произойдет снова, и любые ссылки на чтение приветствуются, поскольку я не уверен, как найти причину этого даже после просмотра.
Спасибо.