2012-09-15 3 views
0

내 화면에 UIAlertview show를 호출하는 클래스를 만듭니다. 다른 클래스에서 UIAlert 함수를 작성합니다. 이 두 클래스는 모두 내 viewController 클래스이 아닙니다.clickedButtonAtIndex를 추가하여 UIAlertView에 충돌이 발생했습니다.

필자는 plist 파일에 텍스트를 저장하기 위해이 UIAlert (내부 UIText 필드)를 사용합니다. 나는 .H에 UIAlertViewDelegate을 추가하는 방법 "clickedButtonAtIndex"을 무시하기 전에

- (void)doAlert 
{ 
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Title" message:@"Message" delegate:self cancelButtonTitle:@"Done" otherButtonTitles:nil]; 
    alert.alertViewStyle = UIAlertViewStylePlainTextInput; 
    [alert show]; 

} 
//this makes crash! 
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{ 
    self.storyFlow.text = [alertView textFieldAtIndex:0].text; 
} 

: 여기

#import "Story.h" 

@implementation Story 

... 
+ (void)stage1 
{ 
    AlertClass *pointer = [AlertClass new]; 
    [pointer doAlert]; 
} 

는 클래스 AlertClass.m 파일입니다 : 여기

는 UIAlert 호출하는 클래스입니다 , 잘 작동합니다. 그러나 UITextfield의 일부 데이터를 경고보기에 저장해야합니다. 충돌이 발생하고 다음과 같이 응답하는 메시지를 알 수 없습니다.

이 문제를 해결하는 데 도움을주십시오. 감사.

[충돌 그림] https://dl.dropbox.com/u/47381923/crash.tiff

+0

이미지를 제공하는 것이 최선의 해결책은 아닙니다 ... 적어도 jpeg 또는 png 일 경우 ...하지만 TIFF입니다! 음, 어쨌든 ... 원시 어셈블리 대신에, 스택 트레이스를 복사하면 더 좋을 것입니다. –

+0

alertview의 텍스트가 유효하고 동시에 self.storyFlow가 초기화되고 null이 아닌지 여부를 확인 했습니까? –

답변

0

가이 충돌하거나 원인이되는 'self.storyFlow.text ='후속 있는지 여부를 확인하기 위해 다시 경고보기에서 벗어나 텍스트상의 NSLog을한다. 아마도 self.storyFlow가 아직 생성되지 않았습니다 (alloc/init 사용)

+0

NSLog를했는데 아무 반응이 없었습니다. 심지어 나는 "clickedButtonAtIndex"안에 빈 상태로 두었습니다. 여전히 크래시가 발생했습니다 .. – Graphite

+1

AlertClass가 대리자 alertView 'clickedAtButtonAtIndex'메소드를 처리 할 수 ​​없다는 NSObject로부터 상속하는 경우; UIView에서 궁극적으로 상속받을 수 있도록보기 컨트롤러에 넣어야합니다. – SPA

+0

예 .. 마지막으로 문제가 발견되었습니다 .. 감사합니다 ~ – Graphite

관련 문제