【问题标题】:Re-initialize a NSMutableString object重新初始化一个 NSMutableString 对象
【发布时间】:2014-07-24 11:52:25
【问题描述】:
我有这样的事情
NSMutableString *eng = [NSMutableString stringWithString:@"Stack"];
[eng appendString:@"overflow"];
现在我想重新初始化对象“eng”以不包含任何内容,即简单地@“”
我对我拥有的选项感到困惑。请在其中任何一个中提出建议,以最佳做法为准:
[eng init];
或
[eng initWithString:@""];
或
[eng setString:@""];
【问题讨论】:
标签:
objective-c
nsmutablestring
【解决方案1】:
使用[eng setString:@""],因为这意味着使用相同的NSMutableString 实例,并且仅更改其内部内容。
你不能使用initXxx,除非你愿意用一个新的实例替换当前的字符串实例:
eng = [[NSMutableString alloc] init];
还有[NSMutableString deleteCharactersInRange:] 也可以考虑。
但归根结底,使用这些方法中的哪一种可能差别不大。
【解决方案2】:
我建议使用第三个选项:
[eng setString:@""];
在这种情况下,您仍然使用同一个实例。
【解决方案3】:
只需使用setString 而不是[[NSMutableString alloc] init];
虽然两者都有效,但前者只是简单地将值更改为空白字符串。