Swift 'no tiene un miembro llamado'

Hay una solución para este problema ?

class ViewController : UIViewController { let collectionFlowLayout = UICollectionViewFlowLayout() let collectionView = UICollectionView(frame: CGRectZero, collectionViewLayout: collectionFlowLayout) } 

xcode me da el siguiente error

 ViewController.swift: 'ViewController.Type' does not have a member named 'collectionFlowLayout' 

Podría hacerlo opcional e inicializarlo en el método init, pero estoy buscando una manera de hacer que the collectionview sea let y no a var

Puede asignar valores iniciales a variables de miembros constantes en su inicializador. No hay necesidad de convertirlo en var u opcional.

 class ViewController : UIViewController { let collectionFlowLayout = UICollectionViewFlowLayout() let collectionView : UICollectionView override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?) { self.collectionView = UICollectionView(frame: CGRectZero, collectionViewLayout: self.collectionFlowLayout); super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil); } requinetworking init(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } } 

Configuración de dejar variables (constantes) en el método init:

 class ViewController : UIViewController { let collectionFlowLayout: UICollectionViewFlowLayout! let collectionView: UICollectionView! init() { super.init() self.collectionFlowLayout = UICollectionViewFlowLayout() self.collectionView = UICollectionView(frame: CGRectZero, collectionViewLayout: collectionFlowLayout) } } 

Podemos acceder a las variables let self.

Espero que funcione para usted.

En ese momento, no se creó collectionFlowLayout por lo que se queja de que no hay ningún miembro llamado así.

La solución puede ser como lo mencionó para que sea opcional e inicializarla en init o puede hacer esto:

 let collectionView = UICollectionView(frame: CGRectZero, collectionViewLayout: UICollectionViewFlowLayout())