문자열 1의 비트. (예 단순화) 다음 코드를 사용할 때 나는 죽은 저장 및 잠재적 인 누출 통보지고 유지 :Xcode에서 NSString의 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
내가 정말 이해가 안 돼요. 일단 사용 후 해제되면 allocalled됩니다. 초기화 된 다음 항상 무언가가 입력되어 항상 읽혀집니다.
실제로 충돌이 일어나지 않았거나 실제로 메모리 누수가 발생하여 혼란 스럽습니다.
슈퍼 감사 중 하나를 해제 즉
이상 사용을 할 것 모자 있도록 오토 릴리즈 문자열을 woulduse! 다음과 같은 의미입니다. NSString * aString; aString는 = @ "이는 문자열";' 가 equivilant이다 '는 NSString * aString = [이 NSString ALLOC] initWithFormat "이 문자열은"@]' 가 있지만 필요하지 않습니다 '[aString release]'명시 적으로 alloc이 호출되지 않았습니까? –
@ 리차드 워싱턴 - AFAIK 예 – MByD
감사합니다, 많이 apreciated –