【发布时间】:2015-07-03 11:34:33
【问题描述】:
我想创建一个从UICollectionViewDataSource 继承的协议,并使用协议扩展来提供所需UICollectionViewDataSource 方法的默认实现。但是,当我尝试声明一个符合此协议的类时,编译器会显示Type 'MyClass' does not conform to protocol UICollectionViewDataSource'。
protocol MyDataSource : UICollectionViewDataSource {
var values: [String] { get }
}
extension MyDataSource {
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell = UICollectionViewCell() // TODO: dequeue
// TODO: configure cell ...
return cell
}
func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return self.values.count
}
}
class MyClass : NSObject, MyDataSource {
var values = [String]()
}
我也尝试将扩展声明如下,但仍然收到相同的编译器错误:
extension UICollectionViewDataSource where Self : MyDataSource
我什至尝试将其扩展到所有 UICollectionViewDataSources 以查看仅继承部分是否可以工作,但没有骰子——同样的错误。
extension UICollectionViewDataSource
【问题讨论】: