2012-07-18 2 views
1

저는 iOS를 처음 사용 했으므로 프로그래밍 방식으로 UIAlertView을 해고 할 때 문제가 있습니다.UIAlertView의 도달 가능성 예외

@interface ViewController : UIViewController<UIWebViewDelegate>{ 
    UIWebView *webView; 
    UIAlertView *alert; 
} 

@property(nonatomic, retain) IBOutlet UIWebView *webView; 
@property(nonatomic, retain) IBOutlet UIAlertView *alert; 

내가 인터넷 연결에 대한 사용자 경고하기 위해이 경고를 사용하는 .m 파일 :

@synthesize alert; 
-(void) checkNetworkStatus:(NSNotification *)notice 
{ 
// called after network status changes 
NetworkStatus internetStatus = [internetReachable currentReachabilityStatus]; 
switch (internetStatus) 
{ 
    case NotReachable: 
    { 
     NSLog(@"The internet is down."); 
     self.internetActive = NO; 
     alert = [[[UIAlertView alloc] initWithTitle:@"Network Unavailable" 
                 message:@"Internet connectivity could not be established!" 
                 delegate:self 
               cancelButtonTitle:nil 
               otherButtonTitles:nil] autorelease]; 
     [alert show]; 
     break; 
    } 
    default: 
    { 
     [alert dismissWithClickedButtonIndex:0 animated:NO]; 

    } 
} 

}

나는 .H 파일에 경고를 선언 이제 인터넷 연결이 끊어지면 경고가 나타납니다. 그러나 인터넷 연결이 설정되면 프로그램에 객체에 대한 잘못된 액세스에 대해 불평이 발생합니다. 아무도 내가 뭘 잘못하고 있다고 말할 수 있습니까?

답변

1

1 클릭 버튼

의 인덱스를 기반으로 기각 헤더 파일의 경고보기를

2이 방법을 사용 안쪽이 방법

-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex 
{ 

} 

을 UIAlertViewDelegate 구현

0
[alert dismissWithClickedButtonIndex:0 animated:NO]; 

이 다른 모든 경우에 대해 호출되며, 메소드가 호출 될 때 경고가 아직 할당되지 않습니다. 또한 그 라인을 추가하는 것은 아닙니다. 또는 이와 같이 코드를 수정할 수 있습니다.

0

이 작동합니다 경고보기 경고 상자가 미리 보여줍니다 경우 (비록 그것의 아주 좋은 생각) 스위치 상태 확인에서

  • 을 알리고 다음 전화를 닫고 해제에 대한 참조를 잡고 :

    default: 
        { 
         if (alert){ 
          [alert dismissWithClickedButtonIndex:0 animated:NO]; 
         } 
        } 
    

    표시하기 전에 "경고"가 실제로 '없음'이라고 가정합니다.