2016-05-10 8 views
0

Nur frage mich, warum ich nicht das Objekt geerbt Collection zugreifen können, wenn faul Initialisierung:Zugriff auf vererbte Objekte in faul Initialisierung schnellen

class FunCollectionLayout : UICollectionViewFlowLayout { 
    var middleSection:Int = { 
     let sectionCount = self.collectionView!.numberOfSections() 
     return sectionCount/2 
    }() 

    func testFunc() { 
     print((self.collectionView?.numberOfSections())!/2) 
    } 
} 

Der Fehler ist:

Value of type 'NSObject ->() -> FunCollectionLayout' has no member 'collectionView' 

Antwort

1

Sie fehlen einfach die lazy Deklarationsattribut

lazy var middleSection:Int = { 
    let sectionCount = self.collectionView!.numberOfSections() 
    return sectionCount/2 
    }() 

Aber Sie vermissen den Punkt, indem Sie dies nicht zu einer berechneten Eigenschaft machen.

var middleSection: Int { 
    let sectionCount = self.collectionView!.numberOfSections() 
    return sectionCount/2 
    } 

es dynamisch halten, halten Sie es synchron mit dem collectionView es eine berechnete Eigenschaft machen.