ho una classe principale, fornendo anche uno spazio dei nomi:Estensione di un tipo nidificato a Swift
class A {
}
e una classe annidata aggiunto tramite un prolungamento (tutti per il bene di utilizzare file separati):
extension A {
class B {
}
}
Voglio aggiungere funzionalità alla classe nidificata (B) estendendola; Ho provato:
extension A.B {
}
ottengo " 'B' non è un tipo di utente 'A'".
(Ho anche provato alcune cose meno ragionevoli, ma io li omettere qui per evitare l'imbarazzo. Docs lettura rapida e usare Google per "rapida estensione classe annidata" non hanno dato neanche una risposta.)
Qualsiasi idea se e come ciò potrebbe essere realizzato?
UPDATE:
questo codice funziona come previsto quando in un unico file (o in un parco giochi), grazie alla user3441734 per provarlo!
Ancora non funziona quando le 3 parti sono in file separati, forse un bug nell'attuale implementazione del compilatore Swift. Presenterò un bug report ad Apple.
Quale versione di Xcode/Swift stai usando? –
Ciao Martin. Per essere chiari, ciascuna delle definizioni è in un file separato. Stando così le cose, sono appena riuscito a riprodurre il problema in Xcode 7.3.1 con Swift 2.2. Se si inseriscono tutte le definizioni in un file (come nel caso del campo giochi nelle risposte di seguito), tutto funziona correttamente. In altre parole, questo non è un problema con Swift in quanto tale, ma con il compilatore. – Baglan