Wie listet man alle swift-konformen Klassen auf?

10

Wie listet man alle Klassen auf, die ein bestimmtes Protokoll in Swift implementieren?

Sagen wir, wir haben ein Beispiel:

%Vor%

Hier ist mein aktueller (nicht kompilierbarer) Ansatz:

%Vor%

Aber beim Aufruf entweder

getClassesImplementingProtocol(Animal.Protocol) oder

getClassesImplementingProtocol(Animal) oder

getClassesImplementingProtocol(Animal.self)

führt zu einem Xcode-Fehler: Wert des Typs (Animal.Protocol) .Type kann nicht in den erwarteten Argumenttyp 'Protocol' konvertiert werden.

Hat jemand geschafft, dass das funktioniert?

    
mixtly87 22.12.2015, 11:35
quelle

1 Antwort

5

Da Sie die Objective-C-Laufzeit verwenden, um die Typ-Introspektion zu erhalten, müssen Sie @objc auf folgende Weise zu Ihrem Code hinzufügen:

%Vor%

Beachten Sie, dass diese Art von Typ-Introspektion sehr langsam sein kann.

    
ColGraff 22.12.2015, 12:53
quelle

Tags und Links