【问题标题】: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];

      虽然两者都有效,但前者只是简单地将值更改为空白字符串。

      【讨论】:

        猜你喜欢
        • 2020-10-13
        • 1970-01-01
        • 2019-10-14
        • 2012-01-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-17
        相关资源
        最近更新 更多