Convenience init in Swift

Khuong Pham
Khuong Pham

Follow

May 23, 2017 * 2 min Lue

luokat, rakenteet ja arvojoukot tarvitsevat vähintään yhden tyhjän init-menetelmän alustaakseen niiden esiintymien valmistelemiseksi.

rakenteiden ja Enumeraatioiden osalta niiden rakentaja on jo ilmoittanut implisiittisesti.

luokista, jos kirjoitamme luokan, meidän pitäisi ilmoittaa se nimenomaisesti.

eikö olekin hyvä?

mutta luokalla on periytyvyys, eli se voi periä superluokkansa menetelmät, ominaisuudet ja muut ominaisuudet. Siirrytään seuraavaan koodiin

meillä on B-A-luokan alaluokka A. Lisäsimme muuttujan, ja lisäsimme initializerin asettaaksemme arvon b, jotta se kääntyisi. Voisi olettaa, että B on perinyt Ainitializer, init(a: Int). Mutta se ei. miten A’s init(a: Int) osaa antaa arvon b muuttujalle, jonka B lisäsi? Emme voi alustaa B – instanssia alustajalla, joka ei voi alustaa kaikkia arvojamme.:

joten jos haluan vain alustaa A tai b arvo, oletusarvo loput. Miten se voisi?

Convenience init auttaa meitä, lisää tämä koodi

joten meillä on erittäin kätevä tapa alustaa Binstanssi.

nyt riitti! Toivon, että nautit tästä artikkelista, kiitos lukemisesta ja näen sinut ensi kerralla.