【问题标题】:iOS: found nil while unwrapping an Optional valueiOS:在展开可选值时发现 nil
【发布时间】:2016-01-20 15:23:30
【问题描述】:

我收到以下错误。

致命错误:在展开可选值时意外发现 nil

应用程序因以下代码而崩溃。由于这是我的第一个场景,应用程序在加载的那一刻就崩溃了。

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
    tableView.delegate = self
    tableView.dataSource = self
    mySingleton = Singleton.sharedInstance
}

override func viewDidAppear(animated: Bool) {
    super.viewDidAppear(animated)
    tableView.reloadData()
}

它在 tableView.delegate = self 上崩溃。如果我注释掉该行和 tableView.delegate = self 它然后在 tableView.reloadData() 行上崩溃。如果我评论该行,应用程序不再崩溃,但动态 tableView 将不再显示数据,因为它不再重新加载。

在我将第三个选项卡添加到选项卡栏视图控制器之前,该应用程序运行良好。我可能在此过程中不小心做了其他事情。我很想听听你对此事的看法。我已经盯着它看了好几个小时了。

谢谢, 亚历克斯

【问题讨论】:

  • 确保在使用前已将 table view 连接到 IBOutlet 或初始化 tableView。
  • 它连接到一个 IBOutlet。它实际上在几个小时前工作得很好。在打开应用程序之前,我无法完全初始化 tableView,因为它是为了稍后才显示任何数据。
  • 尝试重新连接UITableView的IBOutlet。
  • 请显示更多 Singleton.sharedInstance 的代码和表的委托方法?
  • 由于某种原因,执行干净的构建已经解决了问题。我不知道为什么。

标签: ios swift uitableview reloaddata


【解决方案1】:

您的 tableview 属性似乎为零。

可能是tableview没有正确连接为IBOutlet ...

【讨论】:

    【解决方案2】:

    删除tableView 插座并重试,将您的tableView 连接到您的UIViewController。

    另外,您可以尝试输入日志(以防崩溃):

    po tableView
    

    查看详细信息

    【讨论】:

      猜你喜欢
      • 2016-06-26
      • 2016-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-07
      相关资源
      最近更新 更多