一点一串.使用以下代码时,我会不断收到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)
我真的不明白这一点.它被分配一次然后在使用后释放.它被初始化然后总是放入一些东西并且总是被读取.
它从未崩溃或实际上导致内存泄漏所以我有点困惑.
你不应该分配NSString的aString,因为你分配到aString的if部分.
这应该足够了:
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)
| 归档时间: |
|
| 查看次数: |
2153 次 |
| 最近记录: |