从“[UICollectionViewLayoutAttributes] 向下看?”到 '[UICollectionViewLayoutAttributes]' 只解包可选

Downcast from '[UICollectionViewLayoutAttributes]?' to '[UICollectionViewLayoutAttributes]' only unwraps optionals

我正在尝试构建一个带分页的集合视图(将单元格显示为预览)并找到了 this 教程。我从 Xcode 收到错误,我猜这一定是由于对 Xcode 的更新所致(因为该教程似乎对很多人都有效)。希望得到有关如何解决此问题的提示:

Downcast from '[UICollectionViewLayoutAttributes]?' to '[UICollectionViewLayoutAttributes]' only unwraps optionals; did you mean to use '!'?

您可能做了这样的事情(someOptionalAttributes 属于 [UICollectionViewLayoutAttributes]? 类型):

someOptionalAttributes as! [UICollectionViewLayoutAttributes]

但是,因为someOptionalAttributes只是[UICollectionViewLayoutAttributes]的可选版本,所以不需要强制向下转型,只需要解包即可:

someOptionalAttributes!

只有在转换为全新类型(通常是子类)时才需要强制向下转换。

所以,是的,您的意思是按照错误中的说明使用 !。如果您想安全起见,可以使用多种不同的可选解包技术。