0

非常に奇妙な動作が見られます。サポートが必要です。もともと 1 つのラベルがあり、タグが 43 のコレクション ビュー セルがあります。

次のコードを使用して、ラベルの値を設定しています。

func collectionView(collectionView: UICollectionView!, cellForItemAtIndexPath indexPath: NSIndexPath!) -> UICollectionViewCell! {
    let object = self.fetchedResultsController.objectAtIndexPath(indexPath) as NSManagedObject
    let cell = collectionView.dequeueReusableCellWithReuseIdentifier("playerCell", forIndexPath: indexPath) as UICollectionViewCell
    cell.backgroundColor = UIColor.orangeColor()
    let mintmplabel : UILabel = cell.viewWithTag(43) as UILabel
    mintmplabel.text = "fruktkaka"
    //(cell.viewWithTag(43) as UILabel).text =  object.valueForKey("playerName").description
    //let mintmplabelb : UILabel = cell.viewWithTag(41) as UILabel
    //mintmplabelb.text = "megaman"
    //(cell.viewWithTag(41) as UILabel).text =  object.valueForKey("playerName").description


    return cell
}

期待どおりに動作します!ただし、後でコレクション ビュー セルに別のラベルを追加して、41 のタグを付けようとしました。行のコメントを外すと、

    //let mintmplabelb : UILabel = cell.viewWithTag(41) as UILabel
    //mintmplabelb.text = "megaman"

次のエラーが表示されます(「let」行で):

致命的なエラー: オプション値のラップ解除中に予期せず nil が見つかりました (lldb)

現在のメッセージはソース コードに示されています: "Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, sub code =0x0)"

さまざまなアプローチを試しましたが、うまくいきません。また、両方のラベルを削除して、(同じタグで) 再度追加しようとしました。これにより、タグ 43 と 41 の両方のラベルが壊れます。

タグの使用方法について何かが欠けているか、何らかのバグに出くわしました。

Xcode 6 ベータ 5 を使用しています。

詳しい情報を探す場所がわかりません。

ありがとう/マーティン

4

1 に答える 1