Convenienza Init In Swift

Khuong Pham
Khuong Pham

Seguire

23 Maggio, 2017 · 2 min leggere

le Classi, le strutture e le enumerazioni bisogno di almeno un vuoto metodo di inizializzazione inizializzazione per preparare le loro istanze.

Per le strutture e le enumerazioni, il loro costruttore ha già dichiarato implicitamente.

A proposito delle Classi, se scriviamo una classe, dovremmo dichiararla esplicitamente.

Ok, va bene, vero?

Ma una classe ha Ereditarietà, il che significa che può ereditare i suoi metodi, proprietà e altre caratteristiche della super classe. Passiamo al codice successivo qui sotto

Abbiamo una classe B-una sottoclasse di classe A. Abbiamo aggiunto una variabile e abbiamo aggiunto un inizializzatore per impostare un valore su b in modo che venga compilato. Ci si potrebbe aspettare che B abbia ereditato l’inizializzatore di A, init(a: Int). Ma non lo fa. In che modo A ‘ s init(a: Int) sa come assegnare un valore alla variabile b che B ha aggiunto? Non è così. Quindi non possiamo inizializzare un’istanza B con un inizializzatore che non può inizializzare tutti i nostri valori, in questo modo:

Quindi, se voglio solo inizializzare il valore a o b, con un valore predefinito del resto. Come potrebbe?

Convenienza init ci aiuterà, aggiungere questo codice

Quindi abbiamo un modo molto comodo per inizializzare un’istanza B.

Ecco fatto! Spero che vi piaccia questo articolo, grazie per la lettura e ci vediamo la prossima volta.