2014-11-06 10 views
6

Gibt es eine Lösung für dieses Problem?Swift 'hat kein Mitglied mit dem Namen'

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

Xcode gibt mir die folgenden Fehler

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

ich es optional und initialisieren es in der init-Methode machen könnte, aber ich bin für einen Weg suchen, um die Kollektion Letball zu machen und nicht a var

Antwort

3

Sie können Anfangswerte für konstante Elementvariablen in Ihrem Initialisierer zuweisen. Es gibt keine Notwendigkeit, es var oder optional zu machen.

0

An diesem Punkt gibt es nicht collectionFlowLayout erstellt, so beschwert es sich, dass es kein Mitglied so benannt ist.

Die Lösung kann sein, wie Sie es optional und initialisieren es in init machen erwähnt oder Sie können dies tun:

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

@MehulThakkar Ich habe versucht, Ihre Cade in xCode 6.1 und es funktioniert nicht. – Greg

1

Variablen (Konstanten) einstellen lassen in der init-Methode:

class ViewController : UIViewController { 
    let collectionFlowLayout: UICollectionViewFlowLayout! 
    let collectionView: UICollectionView! 

    init() { 
     super.init() 
     self.collectionFlowLayout = UICollectionViewFlowLayout() 
     self.collectionView = UICollectionView(frame: CGRectZero, collectionViewLayout: collectionFlowLayout) 
    } 
} 

Wir können auf die Let-Variablen mit self zugreifen.

Ich hoffe, dass es für Sie funktioniert.