我知道这是一个重复的问题(非常抱歉),但是到目前为止,我已经尝试了所有我发现的问题,但是仍然收到此错误的错误消息:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIViewController tableView:numberOfRowsInSection:]: unrecognized selector sent to instance 0x7fc4a9705960'
让我用图像清楚地阐明各部分,以便为解决相关问题提供一个很好的答案。

这是文件夹视图(ViewController-主视图,TableView1是子视图):

ios - 'NSInvalidArgumentException'-[UIViewController tableView:numberOfRowsInSection:]-无法识别的选择器已发送到实例-LMLPHP

我的TableView1.xib文件具有:

ios - 'NSInvalidArgumentException'-[UIViewController tableView:numberOfRowsInSection:]-无法识别的选择器已发送到实例-LMLPHPios - 'NSInvalidArgumentException'-[UIViewController tableView:numberOfRowsInSection:]-无法识别的选择器已发送到实例-LMLPHP

我还编辑了TableView1.swift:

override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
      return 1
}

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 10
}

在我的Main.Storyboard中:

当我选择View Controller ios - 'NSInvalidArgumentException'-[UIViewController tableView:numberOfRowsInSection:]-无法识别的选择器已发送到实例-LMLPHP(ios - 'NSInvalidArgumentException'-[UIViewController tableView:numberOfRowsInSection:]-无法识别的选择器已发送到实例-LMLPHP)时,它看起来像这样:
  • ios - 'NSInvalidArgumentException'-[UIViewController tableView:numberOfRowsInSection:]-无法识别的选择器已发送到实例-LMLPHP
  • ios - 'NSInvalidArgumentException'-[UIViewController tableView:numberOfRowsInSection:]-无法识别的选择器已发送到实例-LMLPHP

  • 但是,当我单击View(ios - 'NSInvalidArgumentException'-[UIViewController tableView:numberOfRowsInSection:]-无法识别的选择器已发送到实例-LMLPHP)时:
  • ios - 'NSInvalidArgumentException'-[UIViewController tableView:numberOfRowsInSection:]-无法识别的选择器已发送到实例-LMLPHP
  • ios - 'NSInvalidArgumentException'-[UIViewController tableView:numberOfRowsInSection:]-无法识别的选择器已发送到实例-LMLPHP

  • 我在路上做错了什么或想念什么?

    更多信息:

    ios - 'NSInvalidArgumentException'-[UIViewController tableView:numberOfRowsInSection:]-无法识别的选择器已发送到实例-LMLPHP

    ios - 'NSInvalidArgumentException'-[UIViewController tableView:numberOfRowsInSection:]-无法识别的选择器已发送到实例-LMLPHP

    最佳答案

    -[UIViewController tableView:numberOfRowsInSection:]:
    

    因此,根据错误日志,在设置deletegate和datasource时,某处的类型会不匹配,这是因为在xib上您说tableview1.xib应该实现数据源和委托。但是在ViewController1.swift中,您错误地引用了UIViewController。
    现在您看到UIViewController对于实现委托和数据源只是个未知数,因为它没有(显然)崩溃。
    所以:
    let controller : UIViewController = UIViewController(nibName: "TableView1", bundle: nil)
    

    变成:
    let controller : UITableViewController = UITableViewController(nibName: "TableView1", bundle: nil)
    

    应该管用。

    07-26 05:28