Questo perché class
è una parola chiave a Swift, quindi, qualsiasi metodo valido non può essere nominato class
. Allo stesso modo non è possibile creare un metodo denominato for
, while
o altra parola chiave.
Non sono stato in grado di riprodurre l'eliminazione con i miei metodi, tuttavia, denominare un metodo var
(o altra parola chiave) in obj-c rende impossibile la chiamata da Swift.
Modifica
mi sbagliavo. E 'ancora possibile chiamare class
da Swift utilizzando
var clazz: AnyClass? = self.`class`()
Tuttavia, il compilatore dice:
'Classe' non è disponibile: uso 'dynamicType' invece
Quindi la risposta da Edwin Vermeers è quello giusto.
Sì, ha osservato che la classe stessa è di tipo AnyClass. È interessante notare che Birdy.classForCoder e Birdy.classForKeyedArchiver possono essere passati al runtime, ma non Birdy stesso. (Domanda successiva) –
Avevi ragione. Sono riuscito a trovare una prova che la tua risposta è quella giusta. – Sulthan