0

我有一个NSString我想{在它的开头附加一个。

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

str仅返回{. 这是为什么?Objective-C 非常令人沮丧,因为它提供了许多方法来做同样的事情,但在某些情况下需要不同的方法。

我试着做然后[NSMutableString string]追加,它仍然不起作用。为什么这不起作用,我该怎么办?{extracted

4

3 回答 3

6

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

stringWith所有以or开头的函数都arrayWith创建新对象而不是修改旧对象。

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

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

或者:

 NSMutableString *str = [@"{" mutableCopy];
 [str appendString:blah];
于 2012-06-13T18:10:49.813 回答
5

您正在调用一个NSString返回新字符串且不修改调用它的字符串的方法。你需要打电话appendString

[str appendString:extracted];
于 2012-06-13T18:10:34.843 回答
1
// use it like this

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

希望对你有帮助

于 2012-06-13T20:34:31.913 回答