.h 파일에 UIAlertView * 경고를 선언했습니다. func1에서 할당 경고. func2에 & 릴리스를 표시하십시오. 이로 인해 메모리 BAD_EXEC_ACCESS 문제가 발생합니다.UIAlertView를 현지화해야하는 이유는 무엇입니까?
-(void) func1
{
alert= [[UIAlertView alloc] initWithTitle:nil message:@"To Confirm." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
}
-(void) func2
{
[alert show];
[alert release];
}
다음과 같이하면 괜찮습니다. 모든 것이 함수 내에서 지역화 되었다면 OK입니다. 왜?
-(void) func1
{
alert= [[UIAlertView alloc] initWithTitle:nil message:@"To Confirm." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alert show];
[alert release];
}
에서 당신이 FUNC1에 할당 (그리고이 완료되면이를 해제) 후, [alertView이 유지] 또는 ALLOC이 전화'alloc'은 그것으로 암시'retain'를 전달합니다. 나는 이것이 실제 문제라고 생각하지 않는다. 내 생각에'func2'가 두 번 이상 호출되어서 경고를 과도하게 발표하는 것 같다. –
노아가 옳다고 생각합니다. func1과 2가 무엇인지 궁금합니다. 전체 컨트롤러가 1과 2 사이의 범위를 벗어나니까? – Rayfleck
문제가 해결 되었습니까? 이 기능들을 어떻게 사용하고 있습니까? 코드를 게시 할 수 있습니까? – Sid