Swift 协议一致性
Swift protocol conformace
我有一个 class 分机:
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
我有一个 class 分机:
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