这段代码会产生任何内存泄漏吗?这是更改 NSString 值的正确方法吗?
NSString * enemiesAndElementsTextureFileName = @"bla bla";
enemiesAndElementsTextureFileName = @"bl";
这样做不会导致任何内存泄漏,并且确实是正确的。在这种情况下,您不需要 an,NSMutableString
因为您没有更改字符串文字本身,您只是将字符串值替换为新值(将 @"bla bla" 替换为 @"bl")。
但是,在这种情况下,您的字符串现在将是 'bl',因此您可以删除该第一行值并只拥有NSString * enemiesAndElementsTextureFileName = @"bl";
是的 NSString 分配一次。这是方法之一
是的,根据您的需要使用 NSMutableString 和以下方法:
// Allocate
NSMutableString *str = [[NSMutableString alloc] initWithCapacity:10];
// set string content
[str setString:@"1234"];
// Append
[str appendString:@"567"];
// Concat
[str appendFormat:@"age is %i and height is %.2f", 27, 1.55f];
// Replace
NSRange range = [str rangeOfString:@"height"];//查找字符串height的位置
[str replaceCharactersInRange:range withString:@"no"];
// Insert
[str insertString:@"abc" atIndex:2];
// Delete
range = [str rangeOfString:@"age"];
[str deleteCharactersInRange:range];
NSLog(@"%@", str);