Un'altra bella soluzione è dichiarare il tuo nuovo inizializzatore come convenience
inizializzatore come segue:
convenience init( objectId : NSManagedObjectID ) {
self.init()
}
Se non dichiari alcun inizializzatore designato nella tua sottoclasse, vengono ereditati automaticamente e puoi utilizzarli self.init()
all'interno del tuo inizializzatore di convenienza.
In caso di UIViewController, il metodo di inizializzazione predefinito chiamerà init(nibName nibNameOrNil: String!, bundle nibBundleOrNil: NSBundle!)
con nil
per entrambi gli argomenti (Comando-clic su UIViewController ti darà queste informazioni).
TL; TR : Se preferisci lavorare a livello di UIViewController
codice con s, ecco un esempio funzionante completo che aggiunge un nuovo inizializzatore con un argomento personalizzato:
class MyCustomViewController: UIViewController {
var myString: String = ""
convenience init( myString: String ) {
self.init()
self.myString = myString
}
}