Verwenden Sie stattdessen init(named: String!)
: nennen Sie es wie NSImage(named: "foo")
.
Der Compiler automatisch remaps ObjC Klassenmethoden, die als Convenience-Konstrukteuren benannt werden als Swift initializers zu arbeiten. Wenn ein Klassenmethode die Namenskonvention eines Convenience-Konstruktor folgt (z.B. +[SomeThing thingWithFoo: bar:]
), neu zuordnet Swift es zu einer Initialisierer (z.B. SomeThing(foo: aFoo, bar: aBar)
nennen). Dies gilt auch für einige Methoden, die Apple als einen praktischen Konstruktor (wie im Fall imageNamed:
) identifiziert hat.
In den meisten Fällen, wenn Sie den Klasse-Methode Stil Anruf zu einem Convenience-Konstruktor beenden eingeben, wird der Compiler einen Fehler geben, die Sie sagt, wie es neu zugeordnet worden:
error: 'imageNamed' is unavailable: use object construction 'NSImage(named:)'
Ganz allgemein, Sie kann das autogenerierte Modul "header" für ein API-Symbol in Xcode ansehen, indem man im Editor cmd-klickt (z. B. NSImage
) oder im Xcode-Dokumentations-Viewer oder in den Online-Referenzdokumenten für diese API nach der Swift-Syntax für sucht es benutzen.
mögliches Duplikat von [Definieren der Datei, die ein UIImage verwenden soll (Swift)] (http://stackoverflow.com/questions/24049537/defining-the-file-a-uiimage-will-use-swift) – Jack