gpt4 book ai didi

ios - Swift Cocoa Touch 自定义单元格为 IBOutlets 返回 nil

转载 作者:搜寻专家 更新时间:2023-10-31 21:49:01 25 4
gpt4 key购买 nike

我正在编写一个应用程序,其中我在表格 View 单元格中有一个水平 Collection View 。

当尝试以编程方式设置单元格中的文本时,应用程序崩溃并显示fatal error: unwrapping an Optional value错误消息时意外发现nil。

对我和经验丰富的 cocoa-touch 程序员来说,这表明我的 IBOutlets 没有正确连接,因此 cell.filmTitle 在显式解包时会返回 nil。因此,在重新编码 IBOutlets 并重新连接它们之前,我断开了所有 IBOutlets 与单元格 XIB 的连接,并删除了它们背后的所有代码。但是错误仍然存​​在。

自定义单元格的代码是:

class homeWhatsOnCellectionCell: UICollectionViewCell {
@IBOutlet var filmTitle: UILabel!
@IBOutlet var filmPoster: UIImageView!
}

Collection View 数据源的代码是:

func collectionView(collectionView: UICollectionView!, numberOfItemsInSection section: Int) -> Int {
return 1
}

func collectionView(collectionView: UICollectionView!, cellForItemAtIndexPath indexPath: NSIndexPath!) -> UICollectionViewCell! {
var cell: homeWhatsOnCellectionCell = collectionView.dequeueReusableCellWithReuseIdentifier("Home Whats On Collection View Cell", forIndexPath: indexPath) as homeWhatsOnCellectionCell
cell.filmTitle.text = "The Hunger Games: Catching Fire"
cell.filmPoster.image = UIImage(named: "The Hunger Games.jpg")
return cell
}

func numberOfSectionsInCollectionView(collectionView: UICollectionView!) -> Int {
return 1
}

编辑:根据与 Nate Cook 的对话,我可以说 filmTitle 是问题的原因,尽管它是 nil正确连接到标签。此外,dump(cell) 向控制台输出“-”。感谢任何可以提供帮助的人。

编辑 2: 通过进一步调查,我发现根本看不到该单元格。当我删除 IBOutlets,并尝试简单地显示 XIB 中出现的 10 个单元格时,它们根本不显示,我得到的只是十个相同大小的空白单元格。它显示了一些单元格,因为滚动条会根据显示的单元格数量改变大小和滚动。

最佳答案

听起来 XIB 文件甚至都没有加载。

要么在 IB 中正确设置,要么在 viewDidLoad 的 View Controller 中手动执行此操作

// register table view cell in external XIB file "YourFileName.xib"
tableView.registerNib(UINib(nibName: "YourFileName", bundle: nil), forCellReuseIdentifier: "Home Whats On Collection View Cell")

如果您使用带有原型(prototype)单元的 Storyboard,请确保在 Interface Builder 中设置单元重用标识符。

我猜问题的核心是 TableView 不知道用这个重用标识符加载哪个类。不过,如果有一个堆栈跟踪和更多关于此的信息,那就太好了。您使用的是带有表格 View 单元格的 XIB 文件吗?您在 Storyboard中使用原型(prototype)吗?

关于ios - Swift Cocoa Touch 自定义单元格为 IBOutlets 返回 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24936849/

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