这个问题已经在这里有一个答案:
- 我需要释放一个恒定的NSString? 2个回答
在我的研究中我遇到一些奇特。
@interface Class {
NSString *_string
}
- (void) Method1 {
_string = @"ASDF";
}
Intially我认为_string
是自动释放池的一部分,真的没有去想它的记忆方面。
阅读本SO文章后目标C的NSString *财产保留计数怪胎我已经意识到,不,这是不是这样,那的保留计数_string
实际上是UINT_MAX
显然,我的思想, _string
是自动释放池的一部分是侥幸,我该怎么处理的变量就是不知怎么解决。 我想知道,虽然是:什么时候@"ASDF"
得到扔掉? 我知道我应该使用性质和setter方法,但可能有大量的代码在那里,看起来像这样因为一个变量分配常数如此直观。
什么是不可改变的这些,字面生命周期NSString
s,而当将[_string length]
实际上,因为返回错误@"ASDF"
不驻留在内存中了吗?