0

UIImageView私は私の中に6xを持っていViewControllerます。タップジェスチャも割り当てられています。ユーザーが画像をタップすると、セグエが実行されます。

それらを配列に追加する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 を追加する方法 - これは初心者向けのコースです。

ブレークポイントを設定しましたが、ImageView が nil ではないことは確かです。
それらはすべて正しく接続されています。

編集:

プロジェクトをアップロードしました。誰かが少し時間があれば、何が間違っているのかを調べていただければ幸いです: https://www.dropbox.com/s/fj0tgi9st2xr7y5/s_PlaylistBrowser.zip?dl=0

4

2 に答える 2

1

私はあなたのコードを見てきました。
基本的に、 でラベル接続を見逃していますDetailsViewController
そのため、セグエを実行しようとしたときにのみプログラムがクラッシュします。
ただし、なぜあなたが言及した行を指しているのかわかりません。

于 2015-02-22T15:30:27.750 に答える
1

あなたは次のように書いています。

それは初心者の間違いです。問題があり、すべてを正しく行ったと想定します。しかし、すべてを正しく行ったわけではないことは常識のはずです。正しく行った場合、コードは機能するはずです。

自動的に自問すべき質問は、次のとおりです。私は何か間違ったことをしました。私は何を間違えたのですか?その質問を自問した場合、クラッシュのポイントと、p0、p1、p2、p3、p4、または p5 のいずれかが nil であるというエラー メッセージで明らかです。

于 2015-02-22T21:01:27.087 に答える