首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSMutableString追加失败

NSMutableString追加失败
EN

Stack Overflow用户
提问于 2012-06-14 02:07:12
回答 3查看 196关注 0票数 0

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

代码语言:javascript
复制
 NSMutableString *str = [[NSMutableString alloc] initWithString:@"{"];
    [str stringByAppendingString:extracted];

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

我尝试执行[NSMutableString string]并附加{,然后添加extracted,但仍然不起作用。为什么这不起作用,我应该怎么做?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-06-14 02:10:50

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

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

要获得你想要的东西,一个更简单的解决方案是:

代码语言:javascript
复制
 NSString *str = [NSString stringWithFormat:@"{%@", oldString];

或者:

代码语言:javascript
复制
 NSMutableString *str = [@"{" mutableCopy];
 [str appendString:blah];
票数 6
EN

Stack Overflow用户

发布于 2012-06-14 02:10:35

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

代码语言:javascript
复制
[str appendString:extracted];
票数 5
EN

Stack Overflow用户

发布于 2012-06-14 04:34:32

代码语言:javascript
复制
// use it like this

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

希望这能对你有所帮助

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11020770

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档