0
我想創建只能由特定的類實現的協議。
例
比方說,有一個協議X
,因此,只有一流的A
能夠符合它:
A:X
每X
爲A
,但不是每一個A
是X
。
實踐例
我想創建一個CollectionViewCell
描述符定義CellClass
,其reuseIdentifier
和可選value
通該描述符到合適的細胞中的控制器:
協議
protocol ConfigurableCollectionCell { // Should be of UICollectionViewCell class
func configureCell(descriptor: CollectionCellDescriptor)
}
C ontroller
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let descriptor = dataSource.itemAtIndexPath(indexPath)
let cell = collectionView.dequeueReusableCellWithReuseIdentifier(descriptor.reuseIdentifier, forIndexPath: indexPath) as! ConfigurableCollectionCell
cell.configureCell(descriptor)
return cell as! UICollectionViewCell
}
現在我需要強制投擺脫錯誤的,因爲ConfigurableCollectionCell != UICollectionViewCell
。
爲什麼不是一個子類別? – Wain