Angenommen, Sie versuchen etwas Ähnliches:
%Vor% Leider unterstützt Swift derzeit (wie in Swift 2) Kovarianz oder Kontravarianz nicht und prüft direkt gegen Optional.Type
kann nicht gemacht werden:
Alternativ kann Optional
ein bestimmtes Protokoll erweitern und nach diesem Typ suchen:
Ein bisschen spät für die Party. Aber ich stieß auf das gleiche Problem. Hier ist mein Code.
%Vor% Es sieht gut aus für mich. swift4
Sie könnten Generika verwenden, um dies zu erreichen:
%Vor%Bearbeiten
Der obige Code kann verwendet werden, um zu wissen, ob eine Variable vom optionalen Typ ist. Die einzige Möglichkeit, über eine Variable, die einen Typ enthält, herauszufinden, ist die Verwendung von reflection:
%Vor% Der erste Aufruf von Mirror gibt die Zeichenfolge "Mirror for Optional<String>.Type"
an und die zweite gibt "Mirror for String.Type"
an.
Ich verstehe, dass das Vergleichen der Zeichenfolge keine bequeme Möglichkeit ist, diese Überprüfung durchzuführen, ich werde versuchen, wieder etwas leistungsfähigeres zu finden ..