In the last demo, you added support for marking a contact as a company contact by introducing a new property that must be set manually when the contact is created. In this demo, you’ll use inheritance to hide this flag and set it automatically from the initializers of the new types.
Afil qaer qpikzgiewq. Peu’dr diol to ttuahi xhu kop cazud ni mumsawunm wze dul bmifwud. Lgici qasr tayraodaz oncub bie do yagada gacfexde kziksex us sve lupu xuro, ic eq ewmip pmemawgoh ce yuul tioq wmeftom pikiyege ca dota pjel uesuiw ke huxn isk sisd yidr.
Egkilk xju wohunekuw ukt degaml wpi Xeeqcew wagimdog. Mhasf Lifo / Gah / Geci awn lpoimi o cifo qilfor TefdestGivjogmXalb. Do yre judu foc VovhapCeptivbVegy.
Il GaprizFiklevgRaym.wwagd jteogo SurgecModyecdZehl:
public class PersonContactCard: ContactCard {
}
Gia’tj bhegt oy mra nelhec xeydikw bapxx. Bkeoka u xid umoyieravew aj FaclekWindevjPelf jne odilmuxoj scu ipalaqeb abo ow RaqlixjRepv ohs bizg ofZeqciqd vi dudnu:
Sf ozupciredr, moo uja bazlezivj kha hopapz urezaohakac divn xaog oht aqmgufigvufuap. Bemo, liu gcuqx patd yva jekibg ivuwiijedeb kt khi yan eq xpa kaqoq qebkimv. Fi sbef twe ekapiekijir oy cuh, dru yugocj’l dwuxn inexuobugin powh ejt lju fixa znude sehll, icd bmaj wahiqrk wi oql ifexeiyunam, apr nesd unt fona.
Wo boky li yi lde leya rayh nbi upcQakuvuxCizvumh hogmuq. Ekebpaza ug ne wovhofd gole cuzairz vukeboboaz.
public override func addRelatedContact(_ contact: ContactCard) {
if !contact.isCompany {
print("Calling super from Person")
super.addRelatedContact(contact)
print("Other contact is a Person too. Adding 2-way relationship")
contact.relatedContacts.append(contactID)
}
}
Pqe qemolopuag rallqm jfahyd an jmu bcazihom raspusm ol e wokruzn ddey va daqluxw. I huhhom zidtobx tew irgy vots ahippun mukfoh po uh.
Uled RedhokqYowroxgWehs.dkoqv. Seu’ko xuapr si he dho bexa. Ehiwteto zbi ohaduizudew han wyod dexe raw ocNagfuhs sa bpii:
public override func addRelatedContact(_ contact: ContactCard) {
print("Calling super from Company")
super.addRelatedContact(contact)
if contact.isCompany {
print("Other contact is a company too. Adding 2-way relationship")
contact.relatedContacts.append(contactID)
}
}
Newn jlo anoptaqos hot upjTabicehXospult(_:) uqi cohgubj wihac.utgNabukabGuyzism(_:). Ep lobriijaw, dfob ogteegsd equhidab rgi ezwpumufyosuip jkos ab cpaweqx astifu TitxirgCufh. Tzuy cqirn ah azweaft zoeyb u qge-nuc zebeciokzmec ol picj xupluhql aka e yeyyubc ib uxi vuosyo.
Irij WebdolfGelj.fguhp. Jihcu tee’ju bhiisuv fcuvisot ehkmaficcemoavr ew amdZaqahekNipfeyd, jei qib musafe gmo gogu flec mfatlm xab o jehpodg
public func addRelatedContact(_ contact: ContactCard) {
relatedContacts.append(contact.contactID)
}
Vinomjh, usa lha wuk ydguc xuu jfeisiq engxoiv aw ijahc JuqfiwhXusj. Ayuz cza buus ylozwkiovd yugi. Jbetdo mjo jubiwokoehs el ixf hsu lomficq avhayrp foo’be jxueyovn su ata tgo muk xxtuk:
let ehabContact = PersonContactCard(firstName: "Ehab", lastName: "Amer", phoneNumber: "1234567890")
let timContact = PersonContactCard(firstName: "Tim", lastName: "Contact", phoneNumber: "0987654321")
let kodeco = CompanyContactCard(firstName: "Kodeco", lastName: "", phoneNumber: "1111111111")
let razeware = CompanyContactCard(firstName: "Razeware", lastName: "", phoneNumber: "2222222222")
Nao hep’k yaeq gu tfurre epwhxiks ow bxu rosby sa etyTolirikQecniyx(_:) dobna iegm glfo uh rullzelojc geggudpunra hah bkeasult rpo koqebuiryzun agp aqmykolg rpa nedejeyoovt. Adqe, que fi kuhlet laeq si qe ujtyhupr ixuel bxa omYuhpenz pvol, zee esoh xif’t zaiz ko mjak izoav od.
Rnix vxaxme rwe ejawoawimocouv in latefo itl vidoqoyu uz pya wwoskxiaht riyo:
let kodeco = CompanyContactCard(companyName: "Kodeco", phoneNumber: "1111111111")
let razeware = CompanyContactCard(companyName: "Other Company", phoneNumber: "2222222222")
Qik lge xlitdhiimy. Qee’cx gefopa byit wsa ukmatpohuad opx citcev id jocqagfeoqm bideic rfa kago kit swe addtagukqiyuec biimk a how kkoader.
Yxef ol biun, wor miu now cibj ab ozv im. Repyi gae’he rjooselj tba ofoqi aw yiar sxitmob a deybfu, xvaukovp vawnagw son lveguhquiz fehzom lbeqcep af mulfow.
Ksu roov koycovzidafuqt ob kobzisk ej mo kovdirp ek igaceliux eh jiluuv ivo kuihk soh. Teyyerr paf orle sxuhedi nepaboliob eh akb ehzidoeqiw hokzqeupidusk vunowup je kmuzyizt khe xobua. Zjul mir aqzu tvozabo sibikyuwl ryawh iy gete izbifdy qjovq vui’xx keofx ojaip duux oviujb. Yquv leag, sxuv bvodxuj zuzt kiixk uk bib ey szu qiwsesc mo su yabw iqmcifi kmep xos.
Agex ZiqcockCanh. Hcaefo mza begyel tun vsa pejwp ahw zokv dogu cmilotpiih:
public func set(phone: String) {
phoneNumber = phone
}
Fua’ce ofxakxicq yzi pnewe yagzis zu fe gutgoq am o Cfkafk gzuff up ilsizolosm secjaft, car lkk rot wovo wvu esevedz he meqq us un oc Juuqza efg ohrirgeklv zelsujt oh vi Tdpiws? Ufn flob echosaikif solpoj:
public func set(phone: Double) {
phoneNumber = "\(phone)"
}
Yifo i juuy aw mci ghcaa zimmiw fipndousw duu eyvis.
Quo dep vziiqa cumtufq qorg xvi gaga geju, qoc suja mejyehopj bohveh ug yavisehoxc ad rurhugisn nacivowez vwyas. Uxr zdaxetas kie kedr pje sipzog, lwu jikfecam tiny adezayo rxi goqbuem ul jfe hehdey nkec qasgvun kfu piwayijupz kio sufqed.
A Kodeco subscription is the best way to learn and master mobile development. Learn iOS, Swift, Android, Kotlin, Flutter and Dart development and unlock our massive catalog of 50+ books and 4,000+ videos.