通过定义以下方法,我的UICollectionViewController
符合UICollectionViewDataSource
:
override func collectionView(collectionView: UICollectionView,
cellForItemAtIndexPath indexPath: NSIndexPath)
-> UICollectionViewCell {
// ...
}
在该方法中,如果执行到达switch
语句的默认分支,则会有一个失败的断言。由于这是在方法的上下文中,因此需要任意返回值:nil
是我的首选。
switch ... {
// ...
default:
assertionFailure(); return nil
}
这可以在Objective-C中工作但在Swift中引发编译时错误,因为契约定义了一个非可选的返回类型。
Nil与返回类型不兼容' UICollectionViewCell'
处理这种情况的最佳做法是什么?我不想注册/出列特殊的单元格类型只是为了满足编译器。我可以以某种方式通过而不从默认分支返回任何值,或者我可以抛出适当的异常(如果是,如何)?