我有一个NSString
,我想在其开头添加{
。
NSMutableString *str = [[NSMutableString alloc] initWithString:@"{"];
[str stringByAppendingString:extracted];
仅str
返回{
。这是为什么? Objective-C非常令人沮丧,因为它提供了许多方法来做同样的事情,但对于情况,需要采用不同的方式。
我尝试[NSMutableString string]
并追加{
然后追加extracted
,但仍然无效。为什么这不起作用,我该怎么办?
答案 0 :(得分:6)
stringByAppendingString
返回一个新字符串,它不会修改旧字符串。
所有以stringWith
或arrayWith
等开头的函数都会创建新对象,而不是修改旧对象。
为了实现你想要的,一个更简单的解决方案是:
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];
希望这会对你有所帮助