我想将变量传递给

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
为什么?我不明白这个错误。有人可以帮我吗?

最佳答案

尝试定义没有值的变量

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

并在viewDidLoad中初始化其值

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

第一个被调用的方法是numberOfItemsInSection,因此galleryCount将保持为0,而您的cellForItemAtIndexPath从未被调用。

如果要使用galleryCount,请在viewDidLoad中进行操作。

07-24 12:53