首页 > 解决方案 > 如何修复“使用未解析的标识符‘flowLayout’”

问题描述

对不起,我的英语不好。

我正在尝试以编程方式创建一个集合视图,但它说 flowLayout 是一个未解析的标识符。

import Foundation
import UIKit
import RxSwift

class ChapterViewController: UIViewController, UICollectionViewDataSource, 
UICollectionViewDelegateFlowLayout, UICollectionViewDelegate {

private var myCollectionView: UICollectionView!
var chapterName: String?
var bibleArray = BibleBooksMock().booksArray

override func viewDidLoad() {
    super.viewDidLoad()

    title = chapterName
    view.backgroundColor = UIColor.white
    self.myCollectionView = UICollectionView(frame: self.view.bounds, collectionViewLayout: flowLayout)
    myCollectionView.register(UICollectionViewCell.self, forCellWithReuseIdentifier: "collectionCell")
    myCollectionView.delegate = self
    myCollectionView.dataSource = self
    myCollectionView.backgroundColor = UIColor.cyan

    self.view.addSubview(myCollectionView)
}

标签: swiftuicollectionview

解决方案


虽然我相信@Alex Bailey 有一个很棒的答案,但我想添加更多内容。

let flowLayout: UICollectionViewFlowLayout = UICollectionViewFlowLayout()        
self.myCollectionView = UICollectionView(frame: self.view.bounds, collectionViewLayout: flowLayout)

我想弄清楚为什么你的不起作用以及为什么会这样。在你的,你有

self.myCollectionView = UICollectionView(frame: self.view.bounds, collectionViewLayout: flowLayout

但是,如果您查看代码,则没有名为 flowLayout 的变量。因此,Swift 正在寻找一个flowLayout未事先初始化的名为的变量。在正确答案中,我们初始化flowLayout

let flowLayout: UICollectionViewFlowLayout = UICollectionViewFlowLayout() 

因此,我们知道什么flowLayout是:UICollectionViewFlowLayout。因此,在 Swift 中,如果你看到一个unresolved identifier错误,你可能没有初始化一个你可能认为你已经初始化的变量。这通常是一个要解决的简单错误。


推荐阅读