나는이 코드 문자열을 가지고 있으며 메모리를 확보하는 데 문제가 있습니다. 릴리스하는 사람 만 초기화되고 자동 릴리스되지는 않지만 문자열 "end"및 nSum 릴리스에 문제가 있음을 이해했습니다. .NSString 릴리스
NSString *urlBase = [[NSString alloc] initWithFormat:@"http://service.svc/"];
NSString *op = [[NSString alloc] initWithFormat:@"op1"];
NSString * final = [urlBase stringByAppendingFormat:op];
NSString * nSum = sumTextfield.text;
final = [final stringByAppendingFormat:nSum];
//release
[ urlBase release ];
[ op release ];
//[final release]; error
//[final autorelease]; error
도움에 감사드립니다.
UPDATE : 당신이 초기화, 새, 복사 또는 mutableCopy로 시작하는 방법을 사용하여 객체를 생성하는 경우
- (IBAction)mostrarOpciones {
// code (UP)
}
autorelease를 적용하여 최종적으로 오류가 발생합니다. 나는이 문자열이 IBAction에 있다는 것을 잊어 버렸고 세 번째 호출 버튼에 오류가 발생했습니다. – JohnPortella
네가 신중히 쓴 것을 읽으면 네가 그것을 얻을 때 이미 파이널 라이즈가 완료되었다는 것을 알게 될 것이므로, 너는 그것을 스스로 풀어 놓거나 자동으로 릴리즈 할 필요가 없다. 자동 포기하면 두 번 자동 실행되어 결국 두 번 릴리스되어 충돌이 발생합니다. –
이제 나는 그 종류의 호출을함으로써 파이널이 autorelease와 함께 온다는 것을 이해했다. 도와 주셔서 감사합니다. – JohnPortella