gpt4 book ai didi

swift - 加载自定义 CollectionViewCell Nib 时 initWithCoder 错误

转载 作者:行者123 更新时间:2023-11-30 10:50:06 25 4
gpt4 key购买 nike

我正在使用以下代码在 .xib 文件中创建自定义 UICollectionViewCell,但收到此错误:

Terminating app due to uncaught exception 'NSGenericException', reason: 'This coder requires that replaced objects be returned from initWithCoder:'

所有其他 Stack Overflow 解决方案都是使用 Objective C 的,所以我很困惑该做什么。在我的 NIB 文件中,类是在身份 Controller 中设置的,可重用标识符也是如此。

我使用的 UICollectionViewCell 来自名为 Gemini 的 API,因此该单元被称为 GeminiCell。不过,Gemini 不是问题,因为它无需使用 NIB 即可工作。

View Controller 中的cellForItemAtIndexPath

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {

// Doesn't work
let cell = Bundle.main.loadNibNamed("AlbumsCell", owner: self, options: nil)?[0] as! AlbumsCell

// Also doesn't work
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "Cell", for: indexPath) as! AlbumsCell

return cell
}

自定义单元类

class AlbumsCell: GeminiCell {

@IBOutlet weak var albumsImageView:UIImageView!

override init(frame: CGRect) {
super.init(frame: frame)
}

required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
}

最佳答案

当您以编程方式创建单元格时,您需要使用编码器编写 init ,这是任何人都可以通过 Storyboard使用您的单元格的原因,那么使用编码器的 init 会调用而不是使用框架调用的 init ,这就是您需要实现此初始值设定项的原因

关于swift - 加载自定义 CollectionViewCell Nib 时 initWithCoder 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54772270/

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