swift - 如何修复“使用未解析的标识符‘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)
}
解决方案
虽然我相信@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
错误,你可能没有初始化一个你可能认为你已经初始化的变量。这通常是一个要解决的简单错误。
推荐阅读
- c# - MVC Ads tracking
- vb.net - logic is correct but output is not
- javascript - Invoke function async on AWS Lambda
- javascript - Python Bokeh CustomJS:调试 Taping-Tool 的 JavaScript 回调
- javascript - 在 Express.js 中验证 Kentico Cloud webhooks 签名
- javascript - Switching between buttons
- javascript - 您如何在 Google 地图上的多边形坐标内进行搜索?
- c# - C# Httpclient content-length
- php - 使用数组中的参数调用 Symfony 存储库方法
- react-bootstrap - 在生产模式下构建时 react-bootstrap bsClass 设置不正确