我意识到这个错误已经在stackoverflow上讨论了很多次,但我还是不确定我错过了什么。这是控制台输出:
Unknown class CRBarGraphController in Interface Builder file.
2014-11-18 18:40:05.796 Test[7319:60b] -[UIImageView start2]: unrecognized selector sent to instance 0x16562ac0
2014-11-18 18:40:06.256 Test[7319:60b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIImageView start2]: unrecognized selector sent to instance 0x16562ac0'
CRBarGraphController.m
定义了一个函数(void)start2;
,该函数也在CRBarGraphController.h
的接口中声明。
CRGraphViewController.m
调用start2:
-(void)viewWillAppear:(BOOL)animated {
self.navigationController.navigationBarHidden = NO;
[self.bar_Graph start2];
}
其中,bar_Graph是CRBarGraphController
的对象,在CRGraphViewController.h
中声明为:
@property (weak, nonatomic) IBOutlet CRBarGraphController *bar_Graph;
CRGraphViewController.h
会导入CRBarGraphController.h
此外,在故事板中,bar_Graph outlet设置为class CRBarGraphController
。
为什么XCode仍然认为bar_Graph是UIImageView
而不是CRBarGraphComtroller
的实例?我包含了一个异常断点,以确保异常来自于调用start2的位置。