본문 바로가기

프로그래밍/iOS

[ios] alert show에서 죽을때

사용한 상황은 라이브러리 안에서 UIAlert를 선언한 뒤 호출해줄때

 

 

UIAlertView* alert = [[UIAlertView alloc] initWithTitle:@"AutoCrop실패" message:@"crop이미지 전송" delegate:nil cancelButtonTitle:@"확인" otherButtonTitles:nil, nil];

 

위와 같이 선언하고 바로 [alert show];만 호출했는데도 죽었다.

 

위의 경우

[alert show] 대신에 

 

[alert performSelectorOnMainThread : @selector (show) whitObject : nil waitUntilDone : YES];

 

를 사용하라고 한다.

 

위의 문장은 [alert show] 를 메인 스레드에서 실행하란 것이고 전달되는 오브젝트는 nil이고 이 작업이 끝날때까지는 기다리란 뜻이다.

 

위 현상은 ios7에서는 문제가 없었는데 ios6를 올린 아이패드4 레티나에서 일어났다. 

 

6에서는 현상 해결