我需要声明一个变量如下:

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
我应该声明什么类型的变量,还是有解决方法?

最佳答案

假设CustomCell1CustomCell2UICollectionViewCell继承,您可以执行以下操作:

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
}

10-05 20:20