3
방금 실수 한 디버깅 시간을 보냈다. (할당하지 않은 변수를 풀었다.) 다음에 XCode의 분석에서 경고 메시지를 표시하는 방법이 있는지 궁금해했다. 코드는 다음과 같습니다.메모리 관리 - 버그를 일찍 찾는다
@synthesize alfa, beta;
…
NSString *temp1 = [[NSString alloc] initWithString:@"AlfaText];
self.alfa = temp1;
[temp1 release];
NSString *temp2 = @"BetaText";
self.beta = temp2;
[temp2 release]
마지막 문장은 (분명히?) 버그입니다. Analyze는 당신이 [release]를 너무 적게 가지고있을 때보고하는 좋은 일을하는 것처럼 보입니다. 너무 많은 것을 분석 할 수있는 것처럼 보입니다. 내가 실종되었다는 것을 입증 할 수있는 것이 있습니까?
예, 마지막 문은 버그이지만 아무것도 중단하지 않습니다. 문자열 상수는 'INT_MAX'의 보유 수를 가지며'-retain','-release' 및'-autorelease' 메시지는 no-ops로 대체됩니다. –
하지만 temp2가 NSString이 아닌 NSArray 인 경우에는 손상 될 수 있습니다. – Andrew