Objective c 将字符串附加到NSXmlParser字符串?
我正在使用NSXmlParser从XML文件中提取字符串。xml元素如下所示:Objective c 将字符串附加到NSXmlParser字符串?,objective-c,nsstring,nsxmlparser,nsmutablestring,Objective C,Nsstring,Nsxmlparser,Nsmutablestring,我正在使用NSXmlParser从XML文件中提取字符串。xml元素如下所示: 我可以成功地记录xml标记中的数据,但当我尝试将字符串附加到该数据时,我收到一个错误消息:尝试将不可变对象与appendString进行变异:该tempF实际上是一个可变对象,它被声明为NSMutableString*tempF。我以前已经成功地将字符串附加到NSMutableSrings中,但由于某种原因,它在本例中不起作用。我做错了什么,请帮忙 我的代码是: if ([elementName isEqual:@"
我可以成功地记录xml标记中的数据,但当我尝试将字符串附加到该数据时,我收到一个错误消息:尝试将不可变对象与appendString进行变异:
该tempF
实际上是一个可变对象,它被声明为NSMutableString*tempF头文件中的代码>。我以前已经成功地将字符串附加到NSMutableSrings中,但由于某种原因,它在本例中不起作用。我做错了什么,请帮忙
我的代码是:
if ([elementName isEqual:@"temp_f"]) {
tempF = [[NSMutableString alloc] init];
tempF = [attributeDict valueForKey:@"data"];
[tempF appendString:@"°F"];
NSLog(@"tempF: %@", tempF);
}
没有appendString:
方法,一切都可以正常工作。好的,使用
tempF = [[NSMutableString alloc] init];
创建一个新的可变字符串,并将指向新对象的指针分配给变量tempF
,但使用
tempF = [attributeDict valueForKey:@"data"];
在正下方,将指向新可变表的指针替换为指向XML解析器分配的字符串的指针,该字符串表示属性值——看起来是不可变的。(请注意,您还引入了内存泄漏)。请尝试:
tempF = [[NSMutableString alloc] init];
[tempF appendString: [attributeDict valueForKey:@"data"]];
啊啊啊啊啊啊啊!谢谢!工作起来很有魅力。我想弄明白这一点,真是疯了。