Utilizzare invece init(named: String!)
: chiamarlo come NSImage(named: "foo")
.
Il compilatore rimappa automaticamente i metodi di classe ObjC che vengono denominati come costruttori di convenienza per funzionare come inizializzatori Swift. Se un metodo di classe segue la convenzione di denominazione di un costruttore di convenienza (ad esempio +[SomeThing thingWithFoo: bar:]
), Swift lo riassocia a un inizializzatore (ad esempio chiama SomeThing(foo: aFoo, bar: aBar)
). Ciò vale anche per alcuni metodi che Apple ha identificato come funzionanti come un costruttore di convenienza (come nel caso di imageNamed:
).
Nella maggior parte dei casi, se hai finito a digitare il call-metodo-stile di classe ad un costruttore convenienza, il compilatore vi darà un errore che ti dice come è stato rimappato:
error: 'imageNamed' is unavailable: use object construction 'NSImage(named:)'
Più in generale, si può guardare l'"header" del modulo generato automaticamente per un simbolo API in Xcode facendo clic su quel simbolo (es. NSImage
) nell'editor, oppure cercare nel visualizzatore documentazione di Xcode o nei documenti di riferimento online per quell'API, per trovare la sintassi Swift per usandolo.
possibile duplicato di [Definizione del file utilizzato da UIImage (Swift)] (http://stackoverflow.com/questions/24049537/defining-the-file-a-uiimage-will-use-swift) – Jack