2014-07-24 71 views
1

我有这样的事情重新初始化的NSMutableString对象

NSMutableString *eng = [NSMutableString stringWithString:@"Stack"]; 
[eng appendString:@"overflow"]; 

现在我想重新初始化对象“工程”包含什么,即只需@“”

我在我拥有的选项中感到困惑。请当中任何这些表明,无论是一个很好的做法:

[eng init]; 

[eng initWithString:@""]; 

[eng setString:@""]; 

回答

2

使用[eng setString:@""]因为这意味着同样的NSMutableString实例使用,只是其内部内容被改变。

不能使用initXxx,除非你愿意与一个新的实例来替换当前字符串实例:

eng = [[NSMutableString alloc] init]; 

还有[NSMutableString deleteCharactersInRange:]需要考虑的。

然而,在一天结束时,这些方法中使用哪种方法可能几乎没有什么区别。

+0

感谢这样一个快速和明确的答复。 – Sibir

0

我建议使用第三个选项:

[eng setString:@""]; 

在这种情况下,你仍然具有相同背景的工作。

0

只需使用setString代替[[NSMutableString alloc] init];

虽然两者的工作,前者只是简单的值变化为空字符串。