繁体   English   中英

初始化/清除字符串变量可可的最佳方法

[英]Best way to initialise / clear a string variable cocoa

我有一个例程,可以通过循环解析文本。 在每条记录的末尾,我需要清除我的字符串变量,但我读到someString = @“”实际上只是指向一个新字符串,并导致内存泄漏。

处理此问题的最佳方法是什么? 我应该在迭代之间使用可变字符串变量,还是使用setString:@“”?

在这种情况下,必须小心创建NSString:(工厂方法)或(分配init或(使用@“”)。

如果使用@“”,则它是一个常量字符串,请参见此处: 常量NSString

如果使用[[NSString alloc] init],则需要释放它。您只需要执行[someString release]。

如果您使用[NSString stringWithFormat:@“”]之类的东西,则无需释放它,因为它已在运行时自动释放

由于NSString是不可变的,因此您无法更改字符串的内容。 通过使用@“”初始化它,实际上是在创建一个常量NSString对象。

您可以使用循环本地的NSString,然后在循环结束时释放它-或可以改用NSMutableString。 我更喜欢循环本地字符串。

for ( ; ;) {
    NSString* str = [[NSString alloc] initWithFormat:@"%@", CONTENT];
    ...
    [str release];
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM