0

当我使用此代码时,应用程序以 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];
}

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

4

2 回答 2

1

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

于 2012-09-26T17:01:58.877 回答
0

那没有意义。可能是你忘了提到控制器。应该是这样的:

[[[UIApplication sharedApplication] delegate].editViewController fieldChanged:sender];
于 2012-09-26T17:04:38.193 回答