Iphone Xcode:单击按钮会导致NSInvalidArgumentException

Iphone Xcode:单击按钮会导致NSInvalidArgumentException,iphone,objective-c,xcode,cocoa,ibaction,Iphone,Objective C,Xcode,Cocoa,Ibaction,我在Xcode 4.3.2中工作 我不熟悉Xcode。我正在构建一个应用程序,它必须在单击按钮时更改为不同的视图。我的文件是:AppDelegate.h/.m、GreenViewController.h/.m、SwitchViewController.h/.m、GreenView.xib-我没有使用故事板,但我的项目要求我不要使用它们(向后兼容性问题) 这是我的问题(看起来很简单):我试图在单击UIButton(放置在GreenView.xib中)时打印到控制台。这是我的GreenViewCon

我在Xcode 4.3.2中工作

我不熟悉Xcode。我正在构建一个应用程序,它必须在单击按钮时更改为不同的视图。我的文件是:AppDelegate.h/.m、GreenViewController.h/.m、SwitchViewController.h/.m、GreenView.xib-我没有使用故事板,但我的项目要求我不要使用它们(向后兼容性问题)

这是我的问题(看起来很简单):我试图在单击UIButton(放置在GreenView.xib中)时打印到控制台。这是我的GreenViewController.h代码

#import <UIKit/UIKit.h>
@interface GreenViewController : UIViewController
- (IBAction)switchViews:(id)sender;
@end
GreenView.xib的所有者是GreenViewController

出于某种原因,我只有在按下UIButton(在GreenView.xib中)时才会出现错误:

2012-10-09 18:07:38.490 MyViewSwitcher[8655:f803] -[SwitchViewController switchViews:]: unrecognized selector sent to instance 0x688a660
2012-10-09 18:07:38.492 MyViewSwitcher[8655:f803] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[SwitchViewController switchViews:]: unrecognized selector sent to instance 0x688a660'
SwitchViewController似乎希望从方法“SwitchView”中得到一些东西,但“SwitchView”仅列在GreenViewController中。以前,我在SwitchViewController中有“SwitchView”,但我删除了与该方法对应的所有代码&所有连接。我再次检查了GreenViewController中的“SwitchView”是否连接到GreenView.xib中的UIButton。我已经清理并重新构建了我的项目&我仍然会遇到这个错误


谢谢你的帮助

您的错误是在调用
SwitchViewController
实例上的
switchview:
方法。由于类
SwitchViewController
switchview:
没有定义(因为您删除了它),因此它不知道该做什么,并且崩溃

我不想告诉你,但是你的按钮连接到了
开关视图控制器的
开关视图:
方法。您说“我已经仔细检查了GreenViewController中的‘SwitchView’是否连接到GreenView.xib中的UIButton”。嗯,是的,从你的坠机事件来看,是的。但是您确定它连接到了
GreenViewController
实例的
switchview:
功能吗?你是怎么查到这些信息的

我建议删除连接检查器中UIButton的所有连接。然后将其重新连接到视图控制器(您称之为GreenViewController)。然后,它将显示iAction列表,该列表应仅为
开关视图:
方法

如果你这么做了,它仍然不起作用。尝试删除按钮并重新制作,然后重新连接

2012-10-09 18:07:38.490 MyViewSwitcher[8655:f803] -[SwitchViewController switchViews:]: unrecognized selector sent to instance 0x688a660
2012-10-09 18:07:38.492 MyViewSwitcher[8655:f803] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[SwitchViewController switchViews:]: unrecognized selector sent to instance 0x688a660'