在Obj-C中如何使用新的格式化字符串更新现有的NSString变量?

Gar*_*hby 1 objective-c nsstring

如何NSString使用新格式化的字符串更新现有变量?

例如,我有一个像这样的变量:

String1 = [NSString new];
Run Code Online (Sandbox Code Playgroud)

我希望使用标准printf格式使用新的格式化内容不时更新此字符串对象.

我可以使用initWithFormat:消息初始化一个新的NSString,但这对于已经实例化的对象是不可用的.

有任何想法吗?我想我每次都可以销毁NSString并重新初始化一个新的NSString但是每次我需要更新它时这是正确的解决方案吗?

Chu*_*uck 5

两种选择:

  1. 每次创建一个新字符串[[NSString alloc] initWithFormat:@"whatever"]并将其分配给变量.(确保遵循内存管理规则,包括确保释放字符串的先前值.当然,无论您如何解决此问题,都需要遵循这些规则.)

  2. 创建的NSMutableString,并与变异的方法(更新字符串appendFormat:,setString:,deleteCharactersInRange:,等).在这种情况下,您不仅要更新变量,还要更新字符串本身.

就个人而言,我会使用方法1,每次都创建一个新的NSString.这样我就不必调整变异,只需创建一个具有我想要的精确值的字符串即可.