2015-11-02 53 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