gibt einen Fehler:
Vererbung von Nicht-Protokoll, Nicht-Klassen-Typ 'String' '.
Sieht so aus, als wäre String
keine Klasse. Aber warum kann es in einem Kontext verwendet werden, in dem AnyObject
erwartet wird? Ich denke, AnyObject
ist nur für den Klassen-Typ, während Any
ein Klassen- oder Nicht-Klassen-Typ sein könnte.
Wenn Sie den Befehl + klicken, klicken Sie auf String
in Xcode
So String
ist ein struct
.
Sie können keine Unterklasse von struct
erstellen, wie die Fehlermeldung besagt:
Fehler: Vererbung von Nicht-Protokoll, Nicht-Klassen-Typ 'String'
Sie können es jedoch implizit in NSString
konvertieren (das ist der Untertyp von AnyObject
) , nur wenn Sie Foundation
direkt oder indirekt importiert haben.
Von REPL
%Vor% %Vor% Aber versuchen Sie, die Unterklasse String
oder NSString
zu vermeiden, es sei denn, Sie müssen unbedingt. Weitere Informationen finden Sie unter NSString Subclassing Notes
Verwenden Sie die Erweiterung, um eine neue Methode zu String
Verwenden Sie Delegierungsmuster, wenn Sie mehr Kontrolle darüber haben möchten
%Vor%Tags und Links swift