Property' tableView'在物体上找不到

时间:2014-04-05 21:43:55

标签: ios iphone objective-c uitableview

我有一个[self.tableView reloadData]的方法,但我收到错误Property 'tableView' not found on object of type 'JSONTableViewController *'

如果我将界面设为UIViewController,会发生这种情况,但如果我将界面设为UITableViewController,那么我就不会收到错误。

但是,如果我将它设为UITableViewController并将焦点切换到应用程序中的表格,我会收到错误Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UITableViewController loadView] loaded the "Y4P-9F-EJw-view-lhp-ew-nTw" nib but didn't get a UITableView.'

我现在已经尝试解决这个问题多年了,但我无法找到解决方案。

3 个答案:

答案 0 :(得分:3)

UITableViewController has a "tableView" property。 UIViewController没有tableView“属性。

如果你想要一个使用UIViewController的“tableView”属性,你需要自己添加一个。

E.G。

@property (strong) IBOutlet UITableView *tableView;

请务必将故事板或xib中的表格视图与“tableView”属性相关联。

答案 1 :(得分:2)

  

我有一个方法可以[self.tableView reloadData]但是我是   得到错误Property' tableView'在类型的对象上找不到   ' JSONTableViewController *'。

出现错误是因为您的界面中没有任何名为tableView的媒体资源。

  

如果我将我的界面设为UIViewController,则会发生这种情况,但如果我这样做的话   接口是UITableViewController,然后我就不会收到错误。

这很好,因为UITableViewControllertableView属性,请参阅here

  

但是,如果我将它设为UITableViewController并将焦点切换到   在应用程序中的表中,由于未捕获,我收到错误终止应用程序   异常' NSInternalInconsistencyException',原因:   ' - [UITableViewController loadView]加载了   " Y4P-9F-EJW - 视图 - LHP-EW-NTW" nib但没有得到UITableView。'

请参阅this回答,您没有任何与tableView财产相关联的插座。

您应该查看表格视图sample implementation

答案 2 :(得分:0)

您有一个该视图控制器的nib文件,它的视图是普通视图而不是表视图。此外,普通的UIViewController没有自动的tableview属性。您有两种选择:

  1. 将视图控制器保留为UITableViewController的子类并修改nib,以便"查看" "文件所有者"出口指向UITableView或只删除xib文件(您必须在代码中进行任何表视图自定义)。

  2. 让您将控制器视为UIViewController的子类,并创建自己的tableView插座。在您的nib中添加一个表视图作为子视图,并将其连接到新创建的tableView插座。在这种情况下,您还必须手动设置表视图的委托和数据源。