当我使用此代码时,应用程序以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];
}
请帮我解决这个问题。谢谢。
答案 0 :(得分:1)
从错误中可以看出,UIApplication的委托被设置为一个名为AppDelegate的类的实例,而您将其视为另一个名为EditViewController的类。
答案 1 :(得分:0)
这没有意义。可能你忘记了参考控制器。应该是这样的:
[[[UIApplication sharedApplication] delegate].editViewController fieldChanged:sender];