'NSInvalidArgumentException'/' - [AppDelegate fieldChanged:]:发送到实例的无法识别的选择器

时间:2012-09-26 16:57:41

标签: iphone objective-c unrecognized-selector

当我使用此代码时,应用程序以NSInvalidArgumentException终止,我不知道原因:

FieldViewController.m我有:

-(IBAction)fieldEntered:(NSString*)sender {
[self.temp resignFirstResponder];
NSString *setFieldEntered;
setFieldEntered = temp.text;
fieldTemp = setFieldEntered;
[(EditViewController *)[[UIApplication sharedApplication] delegate] fieldChanged:(id)sender];

[self dismissModalViewControllerAnimated:YES]; 
}

它终止于[(EditViewController *)[[UIApplication sharedApplication] delegate] fieldChanged:(id)sender];行。

在我的EditViewController.h中,我有 - (void)fieldChanged:(id)sender;在我的EditViewController.m文件中,我有:

-(void)fieldChanged:(id)sender {
    [fieldArray insertObject:[FieldViewController fieldEntered] atIndex:[fieldArray count]+1];
}

请帮我解决这个问题。谢谢。

2 个答案:

答案 0 :(得分:1)

从错误中可以看出,UIApplication的委托被设置为一个名为AppDelegate的类的实例,而您将其视为另一个名为EditViewController的类。

答案 1 :(得分:0)

这没有意义。可能你忘记了参考控制器。应该是这样的:

[[[UIApplication sharedApplication] delegate].editViewController fieldChanged:sender];