以防其他人面临同样的问题。TBXML 有这些类函数
+ (NSString*) textForElement:(TBXMLElement*)aXMLElement {
if (nil == aXMLElement->text) return @"";
return [NSString stringWithCString:&aXMLElement->text[0] encoding:NSUTF8StringEncoding];
}
+ (NSString*) textForElement:(TBXMLElement*)aXMLElement error:(NSError **)error {
// check for nil element
if (nil == aXMLElement) {
*error = [TBXML errorWithCode:D_TBXML_ELEMENT_IS_NIL];
return @"";
}
// check for nil text value
if (nil == aXMLElement->text || strlen(aXMLElement->text) == 0) {
*error = [TBXML errorWithCode:D_TBXML_ELEMENT_TEXT_IS_NIL];
return @"";
}
return [NSString stringWithCString:&aXMLElement->text[0] encoding:NSUTF8StringEncoding];
}
通过使用第二个,它会为您进行检查。据我所知,大多数像这样的调用都有一个 +error 版本。
请注意,它需要一个**错误。