2012-01-07 3 views
0

나는 uialertview를 해지하는 두 가지 방법이 있습니다. 하나는 버튼 클릭으로, 하나는 nstimer로. 타이머가 시작되기 전에 버튼을 클릭하면 타이머가 시작될 때 프로그램이 종료됩니다. 어떻게 타이머가 해제 메시지를 실행할지 여부를 알 수 있도록 uialertview의 상태를 확인합니까? 그리고 디버깅을 위해 NSLog 문을 사용해야합니다.uialertview가 해제되었는지 확인하는 방법은 무엇입니까? 내 프로그램에서

답변

1

제 생각 엔 당신이 할당 해제 된 포인터 UIAlertView에 대한 부실 포인터가있어 예외가 발생하여 응용 프로그램이 중단되는 것 같습니다. 나는 당신이 UIAlertView을 참조하는 인스턴스 변수를 재설정하지 않는다고 생각합니다.

UIAlertView 포인터를 저장하려면 인스턴스 변수가 있어야합니다. 또한이처럼 delegate 속성을 설정해야합니다

myAlert = [[UIAlertView alloc] initWithTitle:...]; 
myAlert.delegate = self; 
[myAlert show]; 
// Now setup the timer 

클래스는 UIAlertViewDelegate protocol 구현해야합니다, 특히 당신이 (필자는 이상을 사용하십시오) alertView:willDismissWithButtonIndex: 및/또는 alertView:didDismissWithButtonIndex:를 구현해야합니다. 이 방법에서는, 인스턴스 변수 재설정 :

[myAlert release]; 
myAlert = nil; 
// Also cancel timer 

타이머를 취소를 중요한 어떤 더 nil에 변수를 설정하는 것과 중요한 부분입니다하지 것입니다. 타이머가 실행되면 더 이상 충돌하지 않지만 타이머를 취소하면 여전히 좋은 생각입니다.

+0

감사합니다. 나는 그것을 시도 할 것이다. – boobami

+0

좋아요. 그것은 매력처럼 작동했습니다! 감사. – boobami