如何解决发送到实例的无法识别的选择器?

时间:2010-06-27 23:56:26

标签: iphone

我有一个uitableview'A',它有单元格,单击其中一个单元格时,需要按下另一个表格视图'B'。现在当在'B'中单击一个单元格时,它需要打开一个简单的视图。

我设法在两个不同的视图中显示两个表。但是当在菜单B中单击一个单元格时,它会挂起并显示以下消息

>无法识别的选择器已发送至>实例

有人可以告诉我如何解决这个问题。谢谢

请在下面找到我的代码

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

    NSInteger row = [indexPath row];
    NSLog(@"entering the if loop libdecripviewcontoller");
    if(self.libraryDescripViewController == nil){
        NSLog(@"its creating new instance of libdecripviewcontoller");
        LibraryDescripViewController *aLib = [[LibraryDescripViewController alloc] initWithNibName:@"LibraryDescripView" bundle:nil];
        self.libraryDescripViewController = aLib;
        [aLib release];
    }
    libraryDescripViewController.title = [NSString stringWithFormat:@"%@",[libraryMenu objectAtIndex:row]];

    ULS1AppDelegate *delegate = [[UIApplication sharedApplication] delegate ];
    [delegate.searchLibNavController pushViewController:libraryDescripViewController animated:YES];
    }

请找到下面的输出

  

2010-06-27 20:13:15.521 ULS1 [1020:207]   进入if循环   libdecripviewcontoller 2010-06-27   20:13:15.533 ULS1 [1020:207]其中   创建新的实例   libdecripviewcontoller 2010-06-27   20:13:15.541 ULS1 [1020:207] *    - [LibraryMenuTabViewController setLibraryDescripViewController:]:   无法识别的选择器发送到实例   0x3c2ec70 2010-06-27 20:13:15.554   ULS1 [1020:207] * 终止应用程序到期   未被捕的例外   'NSInvalidArgumentException',原因:   '*** - [LibraryMenuTabViewController   setLibraryDescripViewController:]:   无法识别的选择器发送到实例   0x3c2ec70'2010-06-27 20:13:15.558   ULS1 [1020:207] Stack:(29303899,   2512004361,29685819,29255286,   29107906,14755,305005454,3033220,   287146,29088448,29084744,37393941,   37394138,2777007,11184,11038)

3 个答案:

答案 0 :(得分:3)

通过打开调试器窗口,单击“显示断点”并设置以下两个断点,可以获得有关错误发生位置的更多信息:

[NSException raise]
objc_exception_throw

现在,当您的应用即将崩溃时,调试器通常会向您显示导致问题的代码行。

因此,在您正在开发的每个应用上都有这些断点是一种很好的做法。

答案 1 :(得分:2)

您似乎在调用“self.libraryDescripViewController = aLib”,这是另一种编写[self setLibraryDescripViewController:alib]的方法。

最可能的原因是你没有在你的类中声明方法setLibraryDescripViewController。

希望这有帮助。

答案 2 :(得分:0)

这里有太少的信息来诊断究竟是什么造成这种情况,但有一件事是肯定的。未为该对象定义要发送到对象的方法。请发布导致错误的代码以及您正在讨论的简单视图的.h和.m文件。

您可能需要将IB中视图控制器的类设置为LibraryDescripViewController。双击xcode中的LibraryDescripViewController.xib文件,当IB打开时,在文件所有者的身份视图中将类设置为LibraryDescripViewController