2014-10-26 14 views
14

Ho appena aggiornato il mio Xcode a 6.1 e ora sto ottenendo uno strano errore di compilazione.Problema Xcode 6.1 Swift - 'init()' non è disponibile: superato dall'importazione di - [NSObject init]

'init()' non è disponibile: superato da importazione di - [NSObject init]

sto Subclassing SCNNode e hanno un riferimento opzionale ad altre classi dello stesso tipo che sto definendo. cioè

import UIKit 
import SceneKit 

    class BayNode: SCNNode { 

     var leftBay:BayNode? 
     var rightBay:BayNode? 


     func addLeftBay() 
     { 

      leftBay = BayNode() // 'init()' is unavailable: superseded by import of -[NSObject init] 

     } 


    } 

Qualcuno sa come posso risolvere questo.

Molte grazie

+0

non collegato: aiuta gli altri (compresi evidenziatore di sintassi del SO) leggere il codice se segui le convenzioni di denominazione Swift, come i tipi di denominazione con maiuscole iniziali. Cioè, usa 'BayNode', non' bayNode'. – rickster

+0

Ciao Rickster, lo farò la prossima volta ;-). Sono piuttosto nuovo qui. – BassetMan

risposta

13

Ho lo stesso problema, in un modo che ho trovato per sopprimere l'errore è di lanciare esplicitamente:

leftBay = BayNode() as BayNode 
+0

Grazie Alex, ho provato questo e funziona alla grande. Funziona come con Xcode 6.01. Qualcuno sa perché, o può offrire una spiegazione dietro questo cambiamento? – BassetMan

+0

Probabilmente un bug nel controllo del tipo. [File con Apple] (http://bugreport.apple.com) per contribuire a rendere più probabile una soluzione rapida. – rickster

+1

Non è un bug, è una conseguenza del passaggio a un controllo del tipo più rigoroso all'interno della lingua. – FiddleMeRagged

Problemi correlati