将属性从一个控制器分配给另一个控制器会给出错误

时间:2013-09-26 00:09:25

标签: ios unrecognized-selector

“发送到实例的无法识别的选择器”有很多种情况,我认为我不会在这么多线程中找到它。或者,如果我这样做将需要一个月左右。

简短。我收到此错误,我的情况是:

我有一个表格视图,显示从Core Data获取的配方。当segue触发时,它会获取目标控制器(即UITabBarController),并为其提供配方。

segue方法的代码是:

if ([segue.identifier isEqualToString:@"RecipeTabBarController"]) {
    RecipeTabBarController *VC = segue.destinationViewController;

    NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
    Recipe *recipe = (Recipe*)[_controller objectAtIndexPath:indexPath];

    VC.recipe = recipe;
}

TabBarController(它是VC)具有配方的属性,如下所示:

@property (nonatomic, strong) Recipe *recipe;

当我点击单元格时,会发出segue,并发生错误,并显示来自控制台的以下消息:

2013-09-25 18:55:21.888 RecipeBank [974:60b] - [UITabBarController setRecipe:]:无法识别的选择器发送到实例0x15da8280 2013-09-25 18:55:21.892 RecipeBank [974:60b] 由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:' - [UITabBarController setRecipe:]:无法识别的选择器发送到实例0x15da8280' 首先抛出调用堆栈: (0x30583f53 0x3abec6af 0x305878e7 0x305861d3 0x304d5598 0x6676f 0x3319f6f1 0x665b7 0x32e1232b 0x32ec5253 0x32d75971 0x32ced473 0x3054f1d5 0x3054cb79 0x3054cebb 0x304b7ce7 0x304b7acb 0x35185283 0x32d59a41 0x67711 0x3b0f4ab7) libc ++ abi.dylib:以NSException类型的未捕获异常终止

RecipeTabBarController在头文件和TableViewController中导入Recipe类,它也会执行segue导入RecipeTabBarController。所以没有错误。

可能出现什么问题?

请帮忙。感谢。

1 个答案:

答案 0 :(得分:0)

听起来目标视图控制器的类是UITabBarController而不是您自己的类RecipeTabBarController。在你的故事板中查看你如何设置segue并弄清楚为什么事情不符合你的期望。