2016-01-12 2 views
0

Вот моя переопределение функции для UICollectionUICollectionViewControllerViewПользовательский заголовок «Фатальная ошибка: неожиданно нашли ноль в то время как разворачивание необязательное значение»

override func collectionView(collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, atIndexPath indexPath: NSIndexPath) -> UICollectionReusableView { 
     var view = UICollectionReusableView() 
     if kind == UICollectionElementKindSectionHeader { 
      let viewHeader : Header = collectionView.dequeueReusableSupplementaryViewOfKind(kind, withReuseIdentifier: "header", forIndexPath: indexPath) as! Header 
      if let userName = viewHeader.userName { 
       userName.text = "James Bond" 
      } 

      view = viewHeader 
     } 

     return view 

    } 

Проблема заключается в том, когда я попытался запустить приложение, после отладки всегда всплывающее окно об ошибке «фатальная ошибка: неожиданно нашли ноль в то время как разворачивание необязательное значение» в строке

let viewHeader : Header = collectionView.dequeueReusableSupplementaryViewOfKind(kind, withReuseIdentifier: "header", forIndexPath: indexPath) as! Header 

Ниже мой viewDidLoad переопределение

override func viewDidLoad() { 
super.viewDidLoad() 

let layout = UICollectionViewFlowLayout() 

collectionView = UICollectionView(frame: self.view.frame, collectionViewLayout: layout) 
self.collectionView!.delegate = self 
collectionView!.dataSource = self 

collectionView!.registerClass(SquareCell.self, forCellWithReuseIdentifier: "cell") 
collectionView!.registerClass(Header.self, forSupplementaryViewOfKind: UICollectionElementKindSectionHeader, withReuseIdentifier: "header") // UICollectionReusableView 
layout.headerReferenceSize = CGSizeMake(self.view.frame.width, 200) 

let cellNib = UINib(nibName: "SquareCell", bundle: nil) 
collectionView!.registerNib(cellNib, forCellWithReuseIdentifier: "cell") 

let headerlNib = UINib(nibName: "HeaderView", bundle: nil) 
collectionView!.registerNib(headerlNib, forCellWithReuseIdentifier: "header") 


self.view.addSubview(collectionView!) 

} 

ответ

0

я узнал, что в моем классе Header.swift я случайно добавить несуществующее имя изображения

override init(frame: CGRect) { 
     super.init(frame: frame) 
     self.cover.image = UIImage(named: "cover") 
     self.userName.text = "Jame Bond" 
    } 

поэтому я удалил имя изображения и все обратно в нормальное русло :)