gpt4 book ai didi

ios - 为什么在 UICollectionView 上出列单元会导致应用程序在 iOS 13 上崩溃?

转载 作者:行者123 更新时间:2023-12-01 16:13:41 25 4
gpt4 key购买 nike

我今天从 10.3 更新到 Xcode 11,并在运行 iOS 13 的 iPhone 模拟器上启动我的应用程序。应用程序立即崩溃并出现以下错误:

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'could not dequeue a view of kind: UICollectionElementKindCell with identifier EventCell - must register a nib or a class for the identifier or connect a prototype cell in a storyboard'

我有一个 EventCell.xib 文件和一个包含 EventCell 类的 EventCell.swift 文件。现在,我已经调用了 collectionView.register(),并在 viewDidLoad() 中注册了我的 Nib,事实上这段代码在我的 iOS 12.4 物理设备和 iOS 12.2 上一直有效模拟器。我无法弄清楚 iOS 13 在 UICollectionView 上发生了什么变化,因为代码编译成功,但在运行时失败。

这里是单元格在 viewDidLoad 中注册的地方:

// MARK: UICollectionView
collectionView.register(UINib(nibName: "EventCell", bundle: nil), forCellWithReuseIdentifier: "EventCell")
collectionView.contentInset = UIEdgeInsets(top: 65, left: 0, bottom: 0, right: 0)
collectionView.scrollIndicatorInsets = UIEdgeInsets(top: 65, left: 0, bottom: 0, right: 0)
collectionView.backgroundColor = applicationScheme.colorScheme.backgroundColor

这是创建单元格的代码:

override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "EventCell", for: indexPath) as! EventCell

cell.imageView.image = UIImage(named: "fill")
cell.titleLabel.text = "Titolo di prova"
cell.dateLabel.text = "00/00/0000"
cell.timeLabel.text = "00:00"

return cell
}

最佳答案

一个可能的答案是来自 dequeueReusableCell Balázs Vincze 的最后评论

I had the exact same issue, but I was registering the cell after setting the contentInset, and on iOS 13, changing the contentInset triggered a layout update on the collection view, which called cellForItemAt, before the cell was actually registered.

我遇到了完全相同的情况,在 ViewController 中调用 collectionView.register(...) 之前更改了 contentInset,这导致了崩溃。

我已经部署了一个更新,如果崩溃不再发生,我将在几周内更新答案。

关于ios - 为什么在 UICollectionView 上出列单元会导致应用程序在 iOS 13 上崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58069879/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com