自定义UICollectionViewCell上的标签插座在Swift中导致Optional.None崩溃

Wil*_*son 10 uicollectionview uicollectionviewcell swift ios8

我有一个collectionViewController,我想显示一堆自定义的UICollectionViewCells,上面有一些标签.不幸的是,每当我尝试访问自定义UICollectionViewCell的标签时,它都会导致崩溃:

安慰

致命错误:无法打开Optional.None

窗口

Thread1:EXC_BAD_INSTRUCTION(代码= EXC_1386_INVOP,子代码= 0x0)

我正试图像这样访问标签:

cell.name.text = names[indexPath!.item]
Run Code Online (Sandbox Code Playgroud)

也许这来自我的插座标签是零?但是,寻找答案没有任何效果,因为我不确定添加的问题是什么?/!在我的代码中并没有真正帮助.

MyCustomUICollectionViewController

class ScrambledTextCollectionViewController: UICollectionViewController {

    var names: String[] = ["Anna", "Alex", "Brian", "Jack"]

    override func viewDidLoad() {
        super.viewDidLoad()

        // Register cell classes
        self.collectionView.registerClass(MyCustomCollectionViewCell.self, forCellWithReuseIdentifier: reuseIdentifier)

    }

    override func numberOfSectionsInCollectionView(collectionView: UICollectionView?) -> Int {
        return 1
    }

    override func collectionView(collectionView: UICollectionView?, numberOfItemsInSection section: Int) -> Int {
        return names.count
    }

    override func collectionView(collectionView: UICollectionView?, cellForItemAtIndexPath indexPath: NSIndexPath?) -> UICollectionViewCell? {
        var cell = collectionView?.dequeueReusableCellWithReuseIdentifier("Cell", forIndexPath: indexPath) as MyCustomCollectionViewCell

        cell.name.text = names[indexPath!.item]

        return cell
    }
}
Run Code Online (Sandbox Code Playgroud)

MyCustomCollectionViewCell

class MyCustomCollectionViewCell: UICollectionViewCell {

    @IBOutlet var name: UILabel
    init(frame: CGRect) {
        super.init(frame: frame)                
    }
}
Run Code Online (Sandbox Code Playgroud)

Dog*_*fee 10

这里找到答案

去掉, self.collectionView.registerClass(MyCustomCollectionViewCell.self, forCellWithReuseIdentifier: reuseIdentifier)

阅读链接了解详细原因