NSMutableString附加失败

时间:2012-06-13 18:07:12

标签: iphone objective-c nsstring nsmutablestring

我有一个NSString,我想在其开头添加{

 NSMutableString *str = [[NSMutableString alloc] initWithString:@"{"];
    [str stringByAppendingString:extracted];

str返回{。这是为什么? Objective-C非常令人沮丧,因为它提供了许多方法来做同样的事情,但对于情况,需要采用不同的方式。

我尝试[NSMutableString string]并追加{然后追加extracted,但仍然无效。为什么这不起作用,我该怎么办?

3 个答案:

答案 0 :(得分:6)

stringByAppendingString返回一个新字符串,它不会修改旧字符串。

所有以stringWitharrayWith等开头的函数都会创建新对象,而不是修改旧对象。

为了实现你想要的,一个更简单的解决方案是:

 NSString *str = [NSString stringWithFormat:@"{%@", oldString];

或:

 NSMutableString *str = [@"{" mutableCopy];
 [str appendString:blah];

答案 1 :(得分:5)

您正在调用一个NSString方法,该方法返回一个新字符串,并且不会修改调用它的字符串。您需要致电appendString

[str appendString:extracted];

答案 2 :(得分:1)

// use it like this

NSString *extracted = @"this is my string";
NSString *str = [[NSString alloc] initWithString:@"{"];
str =  [str stringByAppendingString:extracted];

希望这会对你有所帮助