我需要声明一个变量如下:
var cell
if cond {
cell = collectionView.dequeueReusableCellWithReuseIdentifier(reuseIdentifier, forIndexPath: indexPath) as? CustomCell1
}
else {
cell = collectionView.dequeueReusableCellWithReuseIdentifier(reuseIdentifier, forIndexPath: indexPath) as? CustomCell2
}
这里的问题是我得到了错误
Type annotation missing in pattern
。我应该声明什么类型的变量,还是有解决方法?
最佳答案
假设CustomCell1
和CustomCell2
从UICollectionViewCell
继承,您可以执行以下操作:
var x: UICollectionViewCell?
if cond {
x = CustomCell1()
}
else {
x = CustomCell2()
}
如果要将其用作特定类型的单元格,请使用以下命令:
if let cell1 = x as? CustomCell1 {
//Use cell1 here
}
if let cell2 = x as? CustomCell2 {
//Use cell2 here
}