解析 XML 提要时出现问题。每个父节点大约有 15 个子节点。目前我正在使用 stringbytrimmingchartersinset 解析所有节点:然后是 NSCharacterset whitespaceandnewline 字符集。像这样:
- (void) parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
currentElementValue = (NSMutableString *) [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
}
这适用于除一个节点之外的所有节点。对于这个节点,我希望文本按原样通过。我尝试设置一个 if 语句来区别对待这个特定的节点,所以我更新了以下内容。
- (void) parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
if ([testingString isEqualToString:@"AdoptionSummary"]) {
[currentElementValue appendString:string]; //This keeps breaking
}
else {
currentElementValue = (NSMutableString *) [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
}
但是我遇到了一个错误。
*** 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“尝试使用 appendString 改变不可变对象:”
仅当我使用 stringbytrimmingchartersinset 和 appendString 的组合时才会发生错误。但是,如果我在其中使用 stringbytrimmingchartersinset 或 appendString ,它会毫无错误地解析。 currentElementValue
是一个 NSMutableString 那么为什么会抛出这个错误呢?
我试过查看这个NSMutableString appendString 生成 SIGABRT 错误,并且这个错误:'Attempt to mutate immutable object with appendString:' -但无济于事。
我只想“AdoptionSummary”附加“原样”,而其他 14 个被修剪。我做错了什么?有什么建议吗?
谢谢!