NSMutableString追加失败
问题描述:
我有一个NSString
,我想在它的开始处追加{
。NSMutableString追加失败
NSMutableString *str = [[NSMutableString alloc] initWithString:@"{"];
[str stringByAppendingString:extracted];
这将返回str
只有{
。这是为什么? Objective-C非常令人沮丧,它提供了许多方法来做同样的事情,但是对于需要不同方式的情况。
我试着做[NSMutableString string]
并追加{
然后extracted
它仍然不起作用。为什么这不起作用,我该怎么办?
答
stringByAppendingString
返回一个新的字符串,它不会修改旧的字符串。
以stringWith
或arrayWith
等开头的所有功能都会创建新对象而不是修改旧对象。
要acheive你想要什么,一个简单的解决方案是:
NSString *str = [NSString stringWithFormat:@"{%@", oldString];
或:
NSMutableString *str = [@"{" mutableCopy];
[str appendString:blah];
答
// use it like this
NSString *extracted = @"this is my string";
NSString *str = [[NSString alloc] initWithString:@"{"];
str = [str stringByAppendingString:extracted];
希望这将帮助你
(释放或自动释放'str'如果不使用ARC) – bbum