Swift没有看到变量

时间:2015-07-28 05:38:17

标签: ios swift uicollectionview uicollectionviewcell

我想将变量传递给

func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
    return 6 // <-- HERE
}

来自

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { ... }

为此我做下一个:

class GalleryController: UIViewController {
    var galleryCount = 0 as Int
}

以及后来的

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
    var gallery = myJSON["result"][choosenRow]["gallery"]
    galleryCount = gallery.count
}

我覆盖了我的galleryCount变量,当我想在

中使用它时
func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
    return galleryCount // <-- HERE
}

我收到错误:error: <EXPR>:1:1: error: use of unresolved identifier 'galleryCount' galleryCount

为什么呢?我不明白这个错误。任何人都可以帮我吗?

1 个答案:

答案 0 :(得分:4)

尝试定义没有值的变量

.sort(key=lambda x: datetime.datetime.strptime(x['startTime'], '%Y-%m-%d'))

并在class GalleryController: UIViewController { var galleryCount:Int = 0 }

中初始化其值

因为在集合委托中调用的第一个方法是viewDidLoad而不是numberOfItemsInSection

修改

第一个被调用的方法是cellForItemAtIndexPath,因此numberOfItemsInSection将保持为0,而galleryCount永远不会被调用。

如果您想使用cellForItemAtIndexPath,请在galleryCount中进行。