2014-11-06 56 views
6

是否有解決此問題的方法?Swift'沒有會員姓名'

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

的xcode給了我下面的錯誤

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

我可以使它可選,並在init方法初始化它,但我正在尋找一種方法,使的CollectionView一讓,而不是一個變種

回答

3

您可以將初始值分配給初始值設定項中的常量成員變量。沒有必要使它成爲var或可選。

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); 
    } 

    required init(coder aDecoder: NSCoder) { 
     fatalError("init(coder:) has not been implemented") 
    } 
} 
0

在這一點上沒有collectionFlowLayout創建,所以它抱怨沒有這樣的成員命名。

該解決方案可以像你提到使它可選的,並且在INIT初始化它,或者你可以這樣做:

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

@MehulThakkar我想你的凱德在Xcode 6.1和它不工作。 – Greg 2014-11-06 09:47:56

1

設置讓init方法變量(常量):

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

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

我們可以用自己訪問let變量。

希望它適合你。

相關問題