夫特协议conformace
问题描述:
我有一个类扩展名:夫特协议conformace
extension UICollectionViewCell {
class func registerFromNibInCollectionView(collectionView: UICollectionView, forReuseIdentifier identifier: String) {
...
}
}
一些集合视图细胞符合协议UICollectionViewCellsProtocol
。我想为细胞创建符合协议的registerFromNibInCollectionView
(具有不同方法签名)的另一个版本。我试过extension UICollectionViewCell where Self: UICollectionViewCellsProtocol {
,但没有运气。任何想法如何实施?
答
您可以通过扩展协议本身
protocol UICollectionViewProtocol {}
extension UICollectionViewProtocol {
static func registerFromNibInCollectionView (collectionView: UICollectionView, forReuseIdentifier identifier: String) {
//code
}
}
class MyClass:UICollectionViewCell, UICollectionViewProtocol {
}
MyClass.register... // will work fine
这是不是我真的打算这样做解决。随着你的方法,我的细胞将符合给定的协议。如果'UICollectionViewCell'符合给定的协议,我想实现的是将函数添加到'UICollectionViewCell'。 正式:如果'UICollectionViewCell'禁用到'UICollectionViewProtocol',那么我应该有一个函数 – user1284151
我误解了:),我已经编辑了答案。我希望这可以帮助你 – Lukas
我不知道你为什么使用CollectionType。用这种方法,我无法调用MyCellClass.registerFromNib ...' – user1284151