2015-11-02 49 views
0

我有一个类扩展名:夫特协议conformace

extension UICollectionViewCell { 

    class func registerFromNibInCollectionView(collectionView: UICollectionView, forReuseIdentifier identifier: String) { 
    ... 
    } 

} 

一些集合视图细胞符合协议UICollectionViewCellsProtocol。我想为细胞创建符合协议的registerFromNibInCollectionView(具有不同方法签名)的另一个版本。我试过extension UICollectionViewCell where Self: UICollectionViewCellsProtocol {,但没有运气。任何想法如何实施?

回答

0

您可以通过扩展协议本身

protocol UICollectionViewProtocol {} 
extension UICollectionViewProtocol { 
    static func registerFromNibInCollectionView (collectionView: UICollectionView, forReuseIdentifier identifier: String) { 
     //code 
    } 
} 

class MyClass:UICollectionViewCell, UICollectionViewProtocol { 

} 
MyClass.register... // will work fine 
+0

这是不是我真的打算这样做解决。随着你的方法,我的细胞将符合给定的协议。如果'UICollectionViewCell'符合给定的协议,我想实现的是将函数添加到'UICollectionViewCell'。 正式:如果'UICollectionViewCell'禁用到'UICollectionViewProtocol',那么我应该有一个函数 – user1284151

+0

我误解了:),我已经编辑了答案。我希望这可以帮助你 – Lukas

+0

我不知道你为什么使用CollectionType。用这种方法,我无法调用MyCellClass.registerFromNib ...' – user1284151