[Ios] 致命的なエラー:アンラッピング中に予期せずnilが見つかりました。オプション値


Answers

if let文でcell.labelTitleを安全にアンラッピングすることで、クラッシュを防止できます。

if let label = cell.labelTitle{
    label.text = "This is a title"
}

あなたはまだそこにnilの値を得ている理由を見るためにいくつかのデバッグを行う必要があります。

Question

私はSwiftでUICollectionViewを使用していUICollectionViewたが、セルのラベルのテキストを変更しようとしました。

    func collectionView(collectionView: UICollectionView!, numberOfItemsInSection section: Int) -> Int
{
    return 5
}

func collectionView(collectionView: UICollectionView!, cellForItemAtIndexPath indexPath: NSIndexPath!) -> UICollectionViewCell!
{
    var cell = collectionView.dequeueReusableCellWithReuseIdentifier("title", forIndexPath: indexPath) as TitleCollectionViewCell
    // Next line: fatal error: unexpectedly found nil while unwrapping an Optional value
    cell.labelTitle.text = "This is a title"
    return cell
}

誰がこれについて知っていますか?




Nil Coalescing Operatorも同様に使用できます。

rowName = rowName != nil ?rowName!.stringFromCamelCase():""



私は同じ問題を抱えていました。その理由は、間違った名前のUIImageを読み込もうとしていたからです。 .setImage(UIImage(named: "-name-"呼び出され、名前が正しいことを確認してください。




致命的なエラー:オプション値をアンラッピングしている間に予期せずnilが見つかりました

  1. IBOutletコレクションをチェックしてください。このエラーは、接続されていない要素オブジェクトの使用が発生する可能性があるためです。

:)それはそれが苦労した人々のために役立つことを望む。




私はUILabelにアクセスしようとしていたときに彼のエラーを受けました。 私はストーリーボードのUILabelIBOutletを接続するのを忘れていました。このエラーでアプリがクラッシュしてしまいました。




私はそれがバグか何か分かりませんが、カスタムセルを使用すると、ラベルや他のUIが自動的に初期化されません。 UICollectionViewControllerクラスでこれを試してください。 それは私のために働いた。

override func viewDidLoad() {
    super.viewDidLoad()

    let nib = UINib(nibName: "<WhateverYourNibName>", bundle: nil)
    self.collectionView.registerNib(nib, forCellReuseIdentifier: "title")
}