将字符串追加到NSXmlParser字符串?
问题描述:
我正在使用NSXmlParser从XML文件中提取字符串。 XML元素如下所示:<temp_f data="63"/>
将字符串追加到NSXmlParser字符串?
我能成功地从XML标记日志中的数据,但是当我尝试添加一个字符串的数据我收到一个错误说:Attempt to mutate immutable object with 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"]];
Aaaaaaahhhhhhhh!非常感谢!奇迹般有效。我正在努力弄清楚这一点。 – wigging 2012-03-09 19:22:29