2012-09-25 2 views
1

내 응용 프로그램이 열릴 때마다 특정 조건을 검사합니다. 실패하면 UIAlertView가 사용자에게 표시됩니다.xcode 4.4.1 uialertview crash

[alertview show]가 실행될 때 빌드가 xcode 4.4.1에 부합하여 xcode 4.3.2 및 xcode 4.5에서 정상적으로 작동합니다.

여기에 중요한 정보를 누락 코드

NSString *appMessage = [NSString stringWithFormat:@"Error Message HERE"]; 
UIAlertView *appMessageAlertView = [[UIAlertView alloc] initWithTitle:nil message:NSLocalizedString(appMessage,@"Error Message") delegate:self cancelButtonTitle:nil otherButtonTitles:NSLocalizedString(@"OK", @"ok"),nil]; 
appMessageAlertView.delegate = self; 
[appMessageAlertView show]; 
[appMessageAlertView release]; 

입니다 : 충돌이 iOS6의

답변

0

보여 주었다 또는 dissmissed 때 UIAlertView의 delgates 메소드를 호출에 발생합니다. 그래서 다시

<UIAlertViewDelegate> in .h 

를 추가 그것은 더

delegate:nil in line 2 

다음

appMessageAlertView.delegate = self; 

[appMessageAlertView release]; 
+0

을 - 그 ALLOC이/초기화 불균형하게하지 않는 이유는 무엇입니까? ARC를 사용할 때는 – Farcaller

+0

릴리스가 허용되지 않지만 컴파일 오류가 발생합니다. ARC를 사용하지 않을 때는 릴리스가 있어야합니다. – pre

+0

충돌! = 컴파일 오류. ARC 문제가 있다면 xcode 4.5에서도 눈에 띄게됩니다. – Farcaller

0

는 제목 문자열을 설정하십시오 제거 충돌합니다.

또한 첫 번째 라인이 단순화 될 수있다 : 당신은 ARC는 [appMessageAlertView release];이 허용되지 사용하도록 설정 한 경우 이미 2 호선

의 대리자를 설정 한 NSString *appMessage = @"Error Message HERE";

3 호선도 필요하지 않습니다.

otherButtonTitles을 사용하는 이유가 있습니까? 왜 간단하게 cancelButtonTitleNSLocalizedString(@"OK", nil)으로 설정하지 않습니까?

0

이 시도, IT 작동합니다 다음 제거 릴리스에

UIAlertView *appMessageAlertView = [[UIAlertView alloc] initWithTitle:nil message:@"Error Message" delegate:self cancelButtonTitle:nil otherButtonTitles:@"ok",nil]; 
[appMessageAlertView show]; 
[appMessageAlertView release];