Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 将字符串附加到NSXmlParser字符串?_Objective C_Nsstring_Nsxmlparser_Nsmutablestring - Fatal编程技术网

Objective c 将字符串附加到NSXmlParser字符串?

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:@"

我正在使用NSXmlParser从XML文件中提取字符串。xml元素如下所示:

我可以成功地记录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"]];

啊啊啊啊啊啊啊!谢谢!工作起来很有魅力。我想弄明白这一点,真是疯了。