我的UIImageView里有6xViewController。我也给他们分配了踢踏手势。当用户点击图像时,执行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是nil。
它们都连接得很好。
编辑:
我已经上传了我的项目。如果有人有空的话,我会很高兴看到那里可能出了什么问题:
https://www.dropbox.com/s/fj0tgi9st2xr7y5/s_PlaylistBrowser.zip?dl=0

最佳答案

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

关于ios - 奇怪的“致命错误:解开 optional 值时意外发现nil”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28658620/

10-13 01:16