Xcode中的死存储和NSString的潜在泄漏

0 xcode memory-leaks ios

一点一串.使用以下代码时,我会不断收到Dead Store和潜在泄漏的通知(示例简化):

int x = 0;
NSString *aString = [NSString alloc]init]; <-- value store to 'aString' during its     initialization is never read

if(x == 0)
{
  aString = @"This is a string set by x being 0";
} else
{
  aString = @"This is a string set by x being something else";
}

aTextLabelOutlet.text = aString;
[aString release];
<-- Potential leak of an object allocated online ... and stored into aString
Run Code Online (Sandbox Code Playgroud)

我真的不明白这一点.它被分配一次然后在使用后释放.它被初始化然后总是放入一些东西并且总是被读取.

它从未崩溃或实际上导致内存泄漏所以我有点困惑.

MBy*_*ByD 6

你不应该分配NSStringaString,因为你分配到aStringif部分.

这应该足够了:

int x = 0;
NSString *aString;

if(x == 0)
{
  aString = @"This is a string set by x being 0";
} else
{
  aString = @"This is a string set by x being something else";
}

aTextLabelOutlet.text = aString;
Run Code Online (Sandbox Code Playgroud)