2012-04-07 43 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

这听起来像是Interface Builder中的问题。将按钮放在视图上时,或当您尝试将“取消”事件附加到其中一个事件时,会出现问题吗? – Dondragmer 2012-04-07 22:17:13

+0

当我连接按钮。 – rosst400 2012-04-07 22:27:08

+0

那么你怎么附加这个事件呢?你最终会在'Sent Events','Touch Up Inside'下的'Connections'检查器中提到'cancel'吗?如果您必须输入“cancel”事件的名称,则可能是错误的。 [此视频](http://www.youtube.com/watch?v=7eFbbvVaYOU)可能会有所帮助,尤其是在2:50。 – Dondragmer 2012-04-07 22:43:59

回答

2

当您删除源代码中的IBOutlet时,会发生此错误,但不要在Interface Builder中取消接线。检查您的XIB文件以确保没有旧的属性剩余。旧的有线属性将显示一个感叹号(!)。

+0

可能有一个名为cancel的引用插座,而不仅仅是操作方法。 – lnafziger 2012-04-08 02:39:05

+0

谢谢!这解决了它。 – rosst400 2012-04-08 21:57:02