What are convenience initializers?
Swift version: 5.2
Paul Hudson @twostraws May 28th 2019
nimetyt initializerit ovat oletuksena tapa luoda uusia tyypin ilmentymiä. On olemassa muita, tunnetaan convenience initializers, jotka auttavat sinua saavuttamaan yhteisiä tehtäviä helpommin,mutta ne ovat lisäksi nimetty initializers sijaan korvaavan.
esimerkiksi Polygon
Luokka, joka tallentaa myöhemmin arvottavat pistejoukot, kuten näin:
class Polygon { var points: init(points: ) { self.points = points }}
nyt, jos se olisi vain struktuuri, voisi mennä eteenpäin ja lisätä muita alustajia. Mutta koska se on luokka – jossa alustussäännöt ovat melko monimutkaisia – voit lisätä kätevän alustajan, joka määrittää tietyn pituiset neliöt, kuten tämän:
convenience init(squareWithLength length: CGFloat) { let points = self.init(points: points)}
huomaa, miten convenience – initializer päättyy kutsumalla nimettyä initializeria-tämä on vaatimus, ja tarkoittaa, että sinun convenience-initializerisi ovat vastuussa vain niille ominaisten osien asettamisesta sen sijaan, että tekisivät kaiken.
sponsoroi rakentamisen ja sovelluksen sisäisen tilausinfrastruktuurin ylläpitämisen vaikeaksi. Onneksi on parempikin keino. RevenueCat, voit toteuttaa tilauksia sovelluksen tuntia, ei kuukausia, joten voit saada takaisin rakentaa sovelluksen.
kokeile ilmaiseksi
Sponsor Hacking with Swift and reach the world ’ s largest Swift community!
saatavilla iOS 8.0: sta – lue lisää kirjassani Swift Design Patterns
Similar solutions…
- mitkä ovat nimetyt initializers?
- Fixing ”Class ViewController has no initializers”
- How to convert a HTML name string into a UIColor
- How to use view controller controlment
- How to convert a hex color to a UIColor
About the Swift Knowledge Base
This is part of the Swift Knowledge Base, a free, haettavissa collection of solutions for common iOS questions.