无法识别的选择器发送到实例并在iOS应用程序中的main.m中崩溃

时间:2013-09-03 15:22:07

标签: ios objective-c properties selector segue

大家好,我无法理解,所以我正在寻找你的帮助。 这是...我正在为iOS的故事板工作,在prepareForSegue方法期间,我正在尝试设置将被加载的viewcontroller的属性。

就在这里,我得到一个指向main.m中心线的崩溃,这里是消息:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UITableViewController setDetails:]: unrecognized selector sent to instance 0x8880b80'

这是方法prepareForSegue,我最终在异常后寻找错误:

- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString: @"cellSegue"])
  {
    AppTestDetailViewController *detailViewController = [segue destinationViewController];
    NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
    detailViewController.details = self.detailsList[indexPath.row];
  }
}

嗯.. self.detailsList只是一个Details项数组。 其中details属性在AppTestDetailViewController.h中声明,如此

#import <UIKit/UIKit.h>
#import "Details.h"
#import "DetailCell.h"


@interface AppTestDetailViewController : UITableViewController

@property (strong, nonatomic) Details *details;

@end

所以......我无法理解设置属性的问题所在。 显然我错过了一些东西...... 我希望你们清楚这一点,并感谢你们的帮助!

1 个答案:

答案 0 :(得分:5)

错误消息

-[UITableViewController setDetails:]: unrecognized selector ...

表明detailViewController不是您所期望的AppTestDetailViewController的实例,而是“仅”UITableViewController

一个可能的原因可能是您没有为控制器设置“自定义类” 在故事板文件中。