我该如何解决,在我的代码中解开一个Optional值时意外发现nil

时间:2019-03-25 20:58:05

标签: ios swift xcode

我在编写代码时遇到了麻烦,然后一切正常,然后开始出现此错误

  

“线程1:致命错误:展开包装时意外发现nil   可选值”

当我让我的单元格变量成为可重用单元格时,发生错误。

这是我的代码,该错误发生在声明let cell的第3行。

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let song = songs[indexPath.row]
    let cell = tableView.dequeueReusableCell(withIdentifier: "SongCell") as! SongCell
    cell.setSong(song: song)
    return cell
}

更新:我已经修复了致命错误,但是现在我得到了

  

“线程1:信号SIGABRT”

当我添加此代码来设置表视图数据源和委托时,发生错误。

override func viewDidLoad() {
            super.viewDidLoad()
            songs = createArray()
            playlists = createArray2()
            tableView.dataSource = self
            tableView.delegate = self
            tableView2.dataSource = self    //Adding this causes app to crash
            tableView2.delegate = self  //Adding this causes the app to crash

        // Do any additional setup after loading the view, typically from a nib.
    }  

每当我删除此代码时,应用程序就会启动,但表格视图中不会显示任何单元格。

1 个答案:

答案 0 :(得分:0)

您缺少DecRef的第二个参数

DecRef

确保注册一个笔尖或课程

dequeueReusableCell

OR

let cell = tableView.dequeueReusableCell(withIdentifier: "SongCell", for: indexPath) as! SongCell