2016-04-06 15 views
3

Ich verwende Swift 2.2 und ich ein Protokoll mit zugehörigem Typ wie folgt erklärt:Swift assoziierten Arten und Protokoll Vererbung

protocol CollectionViewModeling { 
    associatedtype CellType 
    func cellAtIndexPath(indexPath: NSIndexPath) -> CellType 
} 

Jetzt habe ich ein Ansichtsmodell Protokoll das obige Protokoll entsprechen:

enum MyItemCell { 
    case MyItemCell1, MyItemCell2 
} 
protocol ItemsListViewModeling: CollectionViewModeling { 
    associatedtype CellType = MyCell 
} 

Schließlich woanders, ich möchte eine var deklarieren, die zu le Protokoll ItemsListViewModeling konform ist:

var viewModel: ItemsListViewModeling 

Und ich bin immer diese Fehlermeldung:

Protokoll ‚ItemsListViewModeling‘ kann nur als generische Einschränkung verwendet werden, da es Selbst oder zugehörigen Typ Anforderungen

hat Aber ich kann eine Klasse, die Geräte einfach erstellen dieses Protokoll.

Ist es möglich, eine var zu einem zugeordneten typisierten Protokoll zu deklarieren? Da ich den letzten Typ des zugeordneten Typs im Protokoll ItemsListViewModeling gebe, verstehe ich nicht, warum ich diesen Fehler vom Compiler sehe.

Dank

Antwort

0

Siehe stackoverflow.com

dort können Sie nicht Protokolle mit den dazugehörigen Typen wie normale Protokolle behandeln und erklären sie als Standalone-Variablen-Typen.