Swift等效于从collectionView:cellForItemAtIndexPath返回nil :(如果断言失败)

时间:2015-11-24 21:39:48

标签: swift uicollectionview swift2 throw assertion

通过定义以下方法,我的UICollectionViewController符合UICollectionViewDataSource

override func collectionView(collectionView: UICollectionView,
                             cellForItemAtIndexPath indexPath: NSIndexPath) 
                             -> UICollectionViewCell {
     // ...
}

在该方法中,如果执行到达switch语句的默认分支,则会有一个失败的断言。由于这是在方法的上下文中,因此需要任意返回值:nil是我的首选。

switch ... {
// ...
default:
    assertionFailure(); return nil
}

这可以在Objective-C中工作但在Swift中引发编译时错误,因为契约定义了一个非可选的返回类型。

  

Nil与返回类型不兼容' UICollectionViewCell'

处理这种情况的最佳做法是什么?我不想注册/出列特殊的单元格类型只是为了满足编译器。我可以以某种方式通过而不从默认分支返回任何值,或者我可以抛出适当的异常(如果是,如何)?

0 个答案:

没有答案