奇怪的"致命错误:在打开一个可选值"时意外地发现了nil;

时间:2015-02-22 13:57:04

标签: ios swift optional unwrap

我的UIImageView中有6次ViewController。我也分配了他们的敲击手势。当用户点击图像时,执行segue。

我将这些ImageViews添加到数组以及应用崩溃的位置:

@IBOutlet weak var p0: UIImageView!
@IBOutlet weak var p1: UIImageView!
@IBOutlet weak var p2: UIImageView!
@IBOutlet weak var p3: UIImageView!
@IBOutlet weak var p4: UIImageView!
@IBOutlet weak var p5: UIImageView!

var playlistArray: [UIImageView] = []

override func viewDidLoad() {
    super.viewDidLoad()

    playlistArray += [p0, p1, p2, p3, p4, p5] // App crashes here

    for index in 0..<playlistArray.count {
        let playlist = Playlist(index: index)
        let playlistImageView = playlistArray[index]

        playlistImageView.image = playlist.icon
        playlistImageView.backgroundColor = playlist.backgroundColor
    }
}

我收到错误:

fatal error: unexpectedly found nil while unwrapping an Optional value

我做错了什么?所有ImageViews都已连接。

  

请注意,我正在遵循一个教程,其中代码实际上是   同样,因此将ImageView添加到数组的方法 - 它是一个   初学者课程。

我设置了一个断点,我确信ImageViews的 none 是零。
他们所有正确连接

编辑:

我上传了我的项目。如果有人有时间,我会很高兴看到那里可能出现的问题: https://www.dropbox.com/s/fj0tgi9st2xr7y5/s_PlaylistBrowser.zip?dl=0

2 个答案:

答案 0 :(得分:1)

我看了你的代码 基本上,您错过了DetailsViewController中的标签连接 因为只有当你尝试执行一个segue时,该程序才会崩溃 我不知道为什么它指出你提到的那条线。

答案 1 :(得分:1)

你写道:&#34;我做错了什么?所有的ImageView都已连接。&#34;

这是一个初学者的错误。有一个问题,你认为你做的一切都是正确的。但是,你应该做正确的事情应该是常识 - 如果你做了,你的代码就可以了!

你应该自动问自己的问题是:我做错了什么。我错了什么?如果你问自己这个问题,那么在崩溃和错误信息中,p0,p1,p2,p3,p4或p5中的一个是零是显而易见的。