ce sunt inițializatoare comoditate?
Swift version: 5.2
Paul Hudson @twostraws 28 Mai 2019
inițializatoarele desemnate sunt modul implicit de a crea noi instanțe de tip. Există și altele, cunoscute sub numele de inițializatoare de comoditate, care sunt acolo pentru a vă ajuta să îndepliniți mai ușor sarcinile comune, dar acestea sunt în plus față de inițializatoarele dvs. desemnate, mai degrabă decât un înlocuitor.
de exemplu, este posibil să aveți oPolygon
clasă care stochează seturi de puncte pentru a fi trase mai târziu, ca aceasta:
class Polygon { var points: init(points: ) { self.points = points }}
acum, dacă ar fi doar o struct ai putea merge mai departe și adăugați alte inițializatoare. Dar, deoarece este o clasă – în care regulile de inițializare sunt destul de complexe – puteți adăuga un inițializator de comoditate care stabilește pătrate de o anumită lungime, astfel:
convenience init(squareWithLength length: CGFloat) { let points = self.init(points: points)}
notați modul în care inițializatorul de comoditate se termină apelând inițializatorul desemnat – aceasta este o cerință și înseamnă că inițializatorii dvs. de comoditate sunt responsabili doar pentru configurarea pieselor care sunt unice pentru ei, mai degrabă decât pentru a face totul.
construirea sponsorizat și menținerea infrastructurii de abonament în aplicație este greu. Din fericire, există o cale mai bună. Cu RevenueCat, puteți implementa abonamente pentru aplicația dvs. în ore, nu luni, astfel încât să puteți reveni la construirea aplicației.
încercați-l gratuit
sponsorizați Hacking-ul cu Swift și ajungeți la cea mai mare comunitate Swift din lume!
disponibil de la iOS 8.0-aflați mai multe în cartea mea Swift Design Patterns
soluții similare…
- ce sunt inițializatorii desemnați?
- fixare „clasa ViewController nu are inițializatori”
- cum de a converti un șir de nume HTML într-un UIColor
- cum să utilizați View Controller de izolare
- cum de a converti o culoare hex la un UIColor
despre Swift Knowledge Base
aceasta este o parte din Swift Knowledge Base, o colecție gratuită, căutate de soluții pentru întrebări comune iOS.