【问题标题】:How to set the text of a previously-created NSMutableString?如何设置先前创建的 NSMutableString 的文本?
【发布时间】:2011-05-30 01:37:26
【问题描述】:

我有一个名为makeStringNSMutableString。我想在我的程序开始时创建它,而不必设置它的文本。然后我希望能够设置它的文本。我目前正在使用以下方法来创建它。

NSMutableString *make2String = [[NSMutableString alloc] initWithString:@""];

然后我使用以下设置其文本值。

make2String = [NSString stringWithFormat:@"Gold.png"];

可以这样做还是有更好的方法来设置NSMutableString 的文本?

【问题讨论】:

  • 你能把你的问题变成一个问题吗?即“可以这样做还是有更好的方法来设置 NSMutableString 的文本**?**”
  • 由于您似乎使用字符串来保存文件名,因此您可能会发现最好使用NSString

标签: objective-c cocoa-touch ios nsmutablestring


【解决方案1】:

这不行,您正在用普通的不可变字符串替换可变字符串(并在此过程中泄漏原始可变字符串)。如果你想走那条路,你可以在释放旧字符串后做[NSMutableString stringWithFormat:@"Gold.png"]。或者你可以使用 NSMutableString 的setString: 方法来设置内容。

但是,如果您实际上并没有改变字符串并且只是分配不同的字符串,那么您根本不需要 NSMutableString。只需执行make2String = @"Gold.png"; 并完成它。

【讨论】:

    【解决方案2】:
      NSMutableString * aString = [NSMutableString alloc];
      aString = [aString init];
      [aString setString:@"yourText"];
      [aString setString:@"yourNewText"];
      [aString setString:@"yourNewNewText"];
      //...
      [aString release];
    

    【讨论】:

    • 分解 alloc/init 对是不好的形式。
    • @Josh:我知道。我不寻常地发现嵌套的消息很难看。
    【解决方案3】:

    make2String = [NSMutableString stringWithFormat:@"Gold.png"];

    仅供参考:这就是我在不设置文本的情况下分配 NSMutableStrings 的方式

    NSMutableString *string = [[NSMutableString alloc] init];

    【讨论】:

      猜你喜欢
      • 2012-03-08
      • 2018-11-25
      • 1970-01-01
      • 2010-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-15
      • 2010-12-10
      相关资源
      最近更新 更多