gpt4 book ai didi

swift - 意外地发现可选值为零 - 在可选链接后它不是零

转载 作者:行者123 更新时间:2023-11-30 10:05:54 26 4
gpt4 key购买 nike

我在 CoreData 中有一个图像数组,它在主视图 Controller 中获取和使用,然后传递到详细 View Controller ,然后再次传递到容器 View Controller 。图像已成功显示在主 Controller 和详细信息 Controller 中,但未在容器 View Controller 中显示。

在容器 View Controller 中,我使用条件绑定(bind)来解开 cellForItemAtIndexPath 中的图像。

enter image description here

在调试器中,加载时 print("did 实际上:(images.count)") 显示我在数组中有一个图像,并且 imageForCell 不是 nil - 它是一个 UIImage - 但是,我仍然意外地发现展开可选值时为零...

enter image description here

最佳答案

因此,要回答这个问题,首先要检查什么是 nil。你假设你解开的值是零,但你的 View 实际上是零。

提示:使用 gaurd 语句。在 Guard 语句中,您必须指定代码在错误情况下必须执行的操作。在 Guard 语句之后,您可以使用解包的值。当您的图像为零时,您当前的代码仅显示一个空单元格,没有任何消息。如果它不显示图像,您将不知道出了什么问题。

我个人喜欢检查我的方法中每个可能的选项。这使得方法变得非常大,但可以防止错误。我也喜欢指定对象的类型,但这完全取决于您。对我来说,主要是“UIImage”和“UIImage?”之间的区别。在您的情况下,UIImage 可能仍然为零。

继续你的下一个问题,为什么它仍然不起作用。因此,我研究了 UICollectionView 从 Storyboard加载时如何初始化其单元格。人们说,在这些场景中手动使用 registerClass 时,它会覆盖从 Storyboard加载的 View 。请参阅:How to set a UILabel in UICollectionViewCell 。我要求你删除它,以证实我的怀疑。

我假设您只需要在不从 Storyboard或 nib/xib 加载 View 时使用 registerClass。

关于swift - 意外地发现可选值为零 - 在可选链接后它不是零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35992766/

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