2012-04-07 3 views
0

내 프로젝트에 UIViewController를 추가했으며 버튼을 추가 할 때를 제외하고는 정상적으로 작동합니다. 오류가 발생합니다 : * 캐치되지 않은 예외 'NSUnknownKeyException'로 인해 앱 종료 중 '이유는 다음과 같습니다.'[setValue : forUndefinedKey :] :이 클래스는 키 취소에 대해 키 값을 코딩하지 않습니다. 'UIViewController에 단추를 추가 할 때 오류 : 'NSUnknownKeyException'

다음은 헤더 및 구현 파일의 코드입니다. 길잡이 편집기를 사용하고 각 컨트롤에서 CTRL을 헤더 파일로 끌면이 코드가 자동으로 생성됩니다.

SignUpViewController.h :

#import <UIKit/UIKit.h> 

@interface SignUpViewController : UIViewController { 


    IBOutlet UITextField *leader; 
    IBOutlet UITextField *emailAddress; 
    IBOutlet UITextField *firstName; 
    IBOutlet UIScrollView *scrollView; 
    IBOutlet UITextField *lastName; 
} 
- (IBAction)cancel:(id)sender; 
- (IBAction)signUp:(id)sender; 

@end 

SignUpViewController.m

#import "SignUpViewController.h" 

@interface SignUpViewController() 

@end 

@implementation SignUpViewController 

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
{ 
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
    if (self) { 
    } 
    return self; 
} 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    [scrollView setScrollEnabled:YES]; 
    [scrollView setContentSize:CGSizeMake(320, 1000)]; 

} 

- (void)viewDidUnload 
{ 
    firstName = nil; 
    lastName = nil; 
    emailAddress = nil; 
    leader = nil; 
    [super viewDidUnload]; 
} 

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    return (interfaceOrientation == UIInterfaceOrientationPortrait); 
} 


- (IBAction)cancel:(id)sender { 
} 

- (IBAction)signUp:(id)sender { 
} 
@end 

나는 오류가 발생하는 이유를 모르겠습니다. 어떤 아이디어?

+0

이것은 인터페이스 빌더에서 문제가되는 것 같습니다. 보기에 단추를 넣거나'cancel' 이벤트를 첨부하려고 할 때 문제가 발생합니까? – Dondragmer

+0

버튼을 부착 할 때. – rosst400

+0

그래서 이벤트에 어떻게 붙이고 있습니까? 'Sent Events','Touch Up Inside'의'Connections' 속성에서'cancel '으로 끝나나요? 'cancel' 이벤트의 이름을 입력해야한다면 아마도 잘못된 장소에 있었을 것입니다. [이 비디오] (http://www.youtube.com/watch?v=7eFbbvVaYOU)는 특히 2:50에 도움이 될 수 있습니다. – Dondragmer

답변

2

이 오류는 소스에서 IBOutlet을 삭제했지만 인터페이스 작성기에서 해당 코드를 제거하지 않은 경우 발생합니다. XIB 파일에서 이전 속성이 남아 있지 않은지 확인하십시오. 오래된 유선 속성은 감탄 부호 (!)와 함께 표시됩니다.

+0

조치 방법 대신 cancel이라는 참조 콘센트가있을 수 있습니다. – lnafziger

+0

감사! 그것은 그것을 고쳤다. – rosst400

관련 문제