Ich bekomme einen Segmentierungsfehler, wenn ich versuche, den untenstehenden Code zu kompilieren. Ich versuche, eine Typ-Constrained-Erweiterung für die Struktur CellUpdater
zu machen, die auf eine Eigenschaft zugreift, deren Typ in einem zugeordneten Typ für einen generischen Typ definiert ist. Nicht sicher, ob ich etwas falsch mache oder ob es eine Einschränkung des Swift-Compilers ist, irgendwelche Ideen?Swift: using Instanz eines generischen Typs associatedtyp segfaults Compiler
0
A
Antwort
1
Ich denke, es könnte verbunden sein, dass der Compiler den View-Modelltyp zur Kompilierzeit, die in Swift erforderlich ist, nicht reparieren kann. Möglicherweise wurde es in Swift 3.0 behoben. Ich habe es geschafft, Ihren Code ein wenig zu ändern, so dass es jetzt kompiliert. Der Hauptunterschied bestand in dem Constraint-View-Modell anstelle der Zelle in der CellUpdater-Erweiterung.
struct CellUpdater<Cell where Cell: UpdatableView> : CellUpdaterType {
typealias ViewModel = Cell.ViewModel
let viewModel: ViewModel
}
extension CellUpdater where Cell.ViewModel : HeadlineCellViewModelType {
func generateDetailsDrillDownController(index: Int) -> UIViewController? {
let storyboard = UIStoryboard(name: "SomeStoryboard", bundle: nil)
let vc = storyboard.instantiateViewControllerWithIdentifier("SomeViewController") as? SomeViewController
vc?.headline = viewModel.headline
return vc
}
}
protocol HeadlineCellViewModelType {
var headline: Headline { get }
}
struct HeadlineCellViewModel : HeadlineCellViewModelType {
let headline: Headline
init(headline: Headline) {
self.headline = headline
}
}
Verwandte Themen
- 1. eine konkrete Instanz eines generischen Typs in Swift erweitern
- 2. Instanz des generischen Typs erstellen?
- 3. Erstellen einer Instanz eines generischen Typs in DART
- 4. Wie kann ich eine anonyme Instanz eines generischen Typs erstellen?
- 5. Abrufen des nicht geschlossenen Typs eines generischen Typs Schließen eines generischen Typs
- 6. Explizite Annotation für generischen Konstruktor eines generischen Typs
- 7. Deserialisieren eines generischen Typs mit Jackson
- 8. Erhalte generische Parameter eines generischen Typs
- 9. Größe des generischen Typs
- 10. Endlosschleife, wenn alle Werte eines generischen Instanz
- 11. Erstelle eine Instanz eines unbekannten Typs
- 12. Überprüfen Sie, ob die Instanz eines Typs
- 13. create htmlhelper Instanz eines anderen Typs
- 14. Wie erstelle ich eine Instanz eines generischen C# -Typs in F #?
- 15. Wie extrahiert man den spezifischen Typ aus einer Instanz eines generischen Typs in Julia?
- 16. C# -Syntax zum Deklarieren einer Variablen eines abstrakten generischen Typs
- 17. Erstellen eines generischen Beendigungshandlers in Swift
- 18. Swift - Using performSelectorOnMainThread
- 19. Verwendung Methode des generischen Typs
- 20. Wie überprüft man, ob ein generischer Typ eine Unterklasse eines anderen generischen Typs in Swift ist?
- 21. Ermitteln, ob Typ eine Unterklasse eines generischen Typs ist
- 22. Wie Kommentar Code mit einer generischen Klasse eines bestimmten Typs
- 23. Wie Klasse <?> Objekt eines generischen Typs
- 24. Wie für alle Implementierungen eines generischen Typs scannen mit Ninject
- 25. Ninject Injection aller Instanzen eines generischen Typs mit Ninject
- 26. Swift - "Alias" eine Instanz eines Objekts
- 27. In Bezug auf einen generischen Typ eines generischen Typs in C# XML-Dokumentation?
- 28. eine neue Instanz eines Typs gegeben als Parameter
- 29. Wie erzeuge ich zur Laufzeit eine Instanz eines unbekannten Typs?
- 30. Schnelle Umwandlung ohne Angabe des generischen Typs
Obwohl dies in Xcode 7.3.1 tatsächlich segfault ist, kompiliert es in Xcode 8 Beta 2 :) – Hamish