Iphone 已将无法识别的选择器发送到实例

Iphone 已将无法识别的选择器发送到实例,iphone,Iphone,我的应用程序在模拟器中工作正常,但当我在手机上运行它时,会出现以下错误: 2010-04-05 21:32:45.119顶部 香蕉[119:207]*终止应用程序 由于未捕获的异常 “NSInvalidArgumentException”,原因: '*-[MethodViewController setReferringObject::无法识别 选择器已发送到实例0x16e930' 发生在这里: -(void)method { [UIView beginAnimations:@"View F

我的应用程序在模拟器中工作正常,但当我在手机上运行它时,会出现以下错误:

2010-04-05 21:32:45.119顶部 香蕉[119:207]*终止应用程序 由于未捕获的异常 “NSInvalidArgumentException”,原因: '*-[MethodViewController setReferringObject::无法识别 选择器已发送到实例0x16e930'

发生在这里:

-(void)method {

 [UIView beginAnimations:@"View Flip" context:nil];
 [UIView setAnimationDuration:0.50];
 [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];

 [UIView setAnimationTransition: UIViewAnimationTransitionFlipFromRight forView:self.navigationController.view cache:NO];
 MethodViewController *methodViewController = [[MethodViewController alloc] initWithNibName:@"MethodViewController" bundle:0];   

 NSManagedObject *selectedObject = self.referringObject;
 methodViewController.referringObject = selectedObject;

 [self.navigationController pushViewController:methodViewController animated:NO];

 methodViewController.title = @"Method";

 [UIView commitAnimations];

 [MethodViewController release]; 
}
它在这条线上崩溃:

methodViewController.referringObject = selectedObject;

不知道如何解决这个问题,因为它在模拟器中工作,我相信它是相当基本的修复,任何帮助都将不胜感激。

不知道为什么会发生这种情况,但此测试可能会产生一些有用的诊断信息:在崩溃的线路上设置断点,并在手机上构建和调试。然后在gdb提示符处键入“po methodViewController”,以找出该变量在运行时实际指向的对象类型。然后在模拟器中尝试同样的事情并进行比较。由于某种原因,你可能在电话中收到了一个错误类别的对象。了解它的实际类别可能会有所帮助

抓住救命稻草,但这里有一些其他东西需要检查:

  • 确保MethodViewController.xib位于项目中,并包含在目标的“复制捆绑资源”阶段中。有时,模拟器能够神奇地找到文件系统中没有正确包含在项目中的资源

  • 确保项目下的其他目录中没有MethodViewController.xib的旧副本

  • 确保MethodViewController.xib中的文件所有者设置为MethodViewController

  • 尝试构建->清除所有目标


  • MethodViewController是否有referringObject属性?是的,它在模拟器中正常工作,没有错误,我不明白为什么它不能在手机上正常工作。使用
    @property
    定义显示代码行。@property(非原子,保留)NSManagedObject*referringObject;可能是重复的感谢你的帖子,它似乎只是修复自己,奇怪!