2013-03-11 3 views
0

내가 buttonCancel이 방법으로 눌렀을 때 메소드를 호출하는 것을 시도하고있다 :있는 UIButton이 목표 설정

+ (DejalActivityView *)activityViewForView:(UIView *)addToView withLabel:(NSString *)labelText width:(NSUInteger)aLabelWidth; 
{ 
// Immediately remove any existing activity view: 
if (dejalActivityView) 
    [self removeView]; 

// Remember the new view (so this is a singleton): 
dejalActivityView = [[self alloc] initForView:addToView withLabel:labelText width:aLabelWidth]; 

buttonCancel = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
[buttonCancel addTarget:self 
       action:@selector(callCancelAlert:) 
     forControlEvents:UIControlEventTouchDown]; 
[buttonCancel setTitle:@"Cancel upload" forState:UIControlStateNormal]; 
buttonCancel.frame = CGRectMake(250, 560, 300, 40); 
[addToView addSubview:buttonCancel]; 
[buttonCancel setImage:[UIImage imageNamed:@"socialize-navbar-bg.png"] forState:UIControlStateNormal]; 

return dejalActivityView; 
} 

나는이 오류를 수신하고

-(IBAction)callCancelAlert:(id)sender{ 

UIAlertView *alert = [[UIAlertView alloc] 
         initWithTitle: @"Announcement" 
         message: @"It turns out that you are playing Addicus!" 
         delegate: nil 
         cancelButtonTitle:@"OK" 
         otherButtonTitles:nil]; 
[alert show]; 
//[alert release]; 
} 

방법 :

'NSInvalidArgumentException을 ', 이유 :'+ [DejalBezelActivityView callCancelAlert :] : 인식 할 수없는 선택자를 클래스 0x3184e4로 보냄 ' * F IRST 호출 스택을 던져 : (0x327862a3 0x3a61f97f 0x32789ca3 0x32788531 0x326dff68 0x346790c5 0x34679077 0x34679055 0x3467890b 0x3467859b 0x345a1523 0x3458e801 0x3458e11b 0x362805a3 0x362801d3 0x3275b173 0x3275b117 0x32759f99 0x326ccebd 0x326ccd49 0x3627f2eb 0x345e2301 0x39445 0x3aa56b20) 의 libC++ abi.dylib : 예외를 던지는라고 종료

그리고 앱이 충돌합니다.

+0

는'buttonCancel'a의 아이바는 다음과 같은 방법부터

당신은이 작업을 수행해야 DejalActivityView의 인스턴스를 ALLOC? – limon

+0

해당 UIButton 없음 * buttonCancel; 최초로보고 된 메소드의 직전에 작성됩니다. – Alessandro

답변

3

첫 번째 메소드는 클래스 메소드에있는 인스턴스 메소드 (-)가 아닌 클래스 메소드 (+)입니다.

당신은 (예를 들어,은으로 만든 ALLOC & 초기화 메시지)하지만 클래스 자체가 아닌 클래스 인스턴스에

[buttonCancel addTarget:self 
       action:@selector(callCancelAlert:) 
     forControlEvents:UIControlEventTouchDown]; 

자기 포인트를 쓸 때.

[buttonCancel addTarget:dejalActivityView 
       action:@selector(callCancelAlert:) 
     forControlEvents:UIControlEventTouchDown]; 
관련 문제