如何在Objective-C中转换以下Swift代码?

时间:2015-11-15 07:08:45

标签: ios objective-c swift

我正在尝试使用certain tutorial学习自行调整大小的UICollectionView Cell技术。我无法弄清楚如何在objective-c中编写以下swift代码:

if let cvl = collectionViewLayout as? UICollectionViewFlowLayout {
    cvl.estimatedItemSize = CGSize(width: 150, height: 75)
  }

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

在Swift中,if - let构造等同于nil - 在Obj-C中进行检查。 as关键字用于投射。问号使其成为可选类型,该值可以包含nil或值。非可选值不能保留nil,如果您尝试“解包”nil可选,则会出现运行时错误。

在Obj-C中(应该等同于):

UICollectionViewFlowLayout * cvl = (UICollectionViewFlowLayout)collectionViewLayout;
if (cvl){
    cvl.estimatedItemSize = CGSizeMake(150, 75);
}

CGGeometry documentation