setValue指向对象而不是复制NSString

时间:2012-09-09 15:28:45

标签: iphone xcode nsstring nsmutablestring setvalue

我正在解析XML文档。我有一个NSMutableString来保存我正在通过的每个节点的值以及特定节点的值 - 我想更新NewsElement类。

这是我的代码:

[newsElement setValue:currentElementValue forKey:elementName];

currentElementValue是NSMutableString,elementName是我要更新的密钥。每个字段为NSString。 问题是,而不是复制字符串,现在我的NSString指向currentElementValue地址,所以所有字段总是相同...

1 个答案:

答案 0 :(得分:1)

大概复制currentElementValue会解决您的问题。你试过了吗?

[newsElement setValue:[currentElementValue copy] forKey:elementName]; 

这将生成NSString的{​​{1}}的不可变副本(即currentElementValue)。如果您需要副本可变,则可以使用NSMutableString方法,例如:

mutableCopy