在 xcode 项目中使用未解析的标识符“单元格”
Posted
技术标签:
【中文标题】在 xcode 项目中使用未解析的标识符“单元格”【英文标题】:Use of unresolved identifier 'cell' in xcode project 【发布时间】:2019-06-04 21:28:14 【问题描述】:在我的比赛应用 Xcode 项目中,我有一个错误说明:
使用未解析的标识符“单元格”。
我的代码:
import UIKit
class ViewController: UIViewController, UICollectionViewDelegate, UICollectionViewDataSource
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell
@IBOutlet weak var collectionView: UICollectionView!
var model = CardModel()
var cardArray:[Card] = []
override func viewDidLoad()
super.viewDidLoad()
//call the getCards method of the card model
cardArray = model.getCards()
collectionView.delegate = self
collectionView.dataSource = self
//mark: -UICollectionView Protocol Methods
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int
return cardArray.count
func collectionView(_ collectionView: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt indexPath: IndexPath)
//get a cardCollectionViewcell object
let cell =
collectionView.dequeueReusableCell(withReuseIdentifier: "CardCell", for: indexPath) as! CardCollectionViewCell
//get card that
let card = cardArray[indexPath.row]
cell.setCard(card)
return
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath)
_ = collectionView.cellForItem(at: indexPath) as!CardCollectionViewCell
//flip the card
cell.flip() <--------- THIS IS THE ERROR
一旦错误得到修复,我应该能够在假 iPhone 上运行匹配应用程序示例。它可以让我一键翻转卡片。
【问题讨论】:
【参考方案1】:我想你忘了设置可重用标识符
希望这能解决您的问题。
要访问该单元格方法,您必须声明变量 let cell = collectionView.cellForItem(at: indexPath) as!CardCollectionViewCell
【讨论】:
【参考方案2】:首先你误用了collectionView:willDisplay:forItemAt
。将所有内容移至collectionView:cellForItemAt
,将return
替换为return cell
并删除willDisplay:
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "CardCell", for: indexPath) as! CardCollectionViewCell
//get card that
let card = cardArray[indexPath.row]
cell.setCard(card)
return cell
罢工>
func collectionView(_ collectionView: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt indexPath: IndexPath) ...
错误很明显:您从未声明 cell
是 didSelectItemAt
的范围。改变
let cell = collectionView.cellForItem(at: indexPath) as! CardCollectionViewCell
【讨论】:
我知道答案的日期。 当然要删除类开头的方法cellForItemAt
。请不要成为复印机和粘贴机。学习这些东西。
请提出一个新问题,如果有帮助,请接受这个问题。以上是关于在 xcode 项目中使用未解析的标识符“单元格”的主要内容,如果未能解决你的问题,请参考以下文章
如何在 xcode 中设置 UITableViewCell 标识符?
AFNetworking 2.0 解析的数据未显示在表格视图中
xcode 错误:“使用未解析的标识符:GGLContext”(没有 CocoaPods)