Si l'erreur venue de la ligne où vous instancier tbxml vous pouvez essayer de l'envelopper dans un @try/@catch
bloc:
TBXML *tbxml = nil;
@try {
tbxml = [[TBXML tbxmlWithURL:[NSURL URLWithString:@"http://localhost/dev/mcomm/produto.xml"]] retain];;
}
@catch (NSException *exception) {
NSLog(@"Caught %@: %@", [exception name], [exception reason]);
}
Vous pouvez également télécharger les données XML en utilisant séparément NSURLConnection et utiliser les méthodes de délégué NSURLConnection pour gérer les conditions d'erreur . En cas de succès, transmettez les données résultantes à un constructeur tel que tbxmlWithXMLData:
.
EDIT: vous avez fait remarquer que la ligne est la cause du problème:
TBXMLElement * xmlElement = aParentXMLElement->firstChild;
L'erreur que vous obtenez est parce que vous essayez de déréférencer un pointeur NULL (aParentXMLElement
est nul, et appelant ->someMethod
il le déréférence). Donc, tout ce dont vous avez besoin est une clause de garde pour vérifier que aParentXMLElement est non nul avant d'essayer de le déréférencer. Quelque chose comme ça:
if (aParentXMLElement != nil) {
TBXMLElement * xmlElement = aParentXMLElement->firstChild;
} else {
NSLog(@"Can't proceed: aParentXMLElement is nil");
}
Hey, j'ai essayé l'essayer et attraper, mais sans chance. Et la console ne donne rien. –
Et c'est cette ligne qui cause l'erreur? Et pas, par exemple, en appelant '.rootXMLElement' sur' tbxml' quand il n'en a pas? –
Je débogue, et le débogueur me montre cette ligne: TBXMLElement * xmlElement = aParentXMLElement-> firstChild; –