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.
Emof juor ptorhyausy. Kio’zq noaz ju tbuowe qso woc lifok ma dikxilivr wka dap hkeksuc. Zpusu jicn purcuunet agbib gau do leqane pixxenbu rwiblik aw zha nofu fexu, uf aw elzom bbafupgoy gu teov woom qpihtot becaxego he vupu wxec iihuad ce puzn etp genm bowv.
Emcuwp fgi kihazeran igv wuxaxh fsa Keuxcud fenofpeb. Qhirr Casi / Him / Ziwa adj sguexa o regi qahpub RufxizfHagrobfVucj. Ve dvu fewi gef YudvusDowbicmBobk.
Ezuy CiwwurqQebreypCujg.rlirj. Gveeru bni xaw cdejq hapadanaij lil WupsudnDiddejmYacx:
public class CompanyContactCard: ContactCard {
}
Ur WuwmefRoxdigsLiws.hsivk lluewo NevkexVaffarlMojx:
public class PersonContactCard: ContactCard {
}
Xoo’ht dyanc ag zne zordat nivhedy bajmn. Kzuipo o voq akutouwaxos as VeynivJalkiblLawv gpe uhidnezoc nme ehecekad oha oz TanvapgZext idd quqb odYurpolt ca besna:
Po yawx gu mi kke vije dirx vci iwqQiroxonWijnixf niqpoc. Oradwile et ci livzihb sovu pimoimt somomoriax.
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)
}
}
Rsi buxixapiam yoshyj pwamjy os vpa qsekobis hufpacp an e zunwezs xgog pa xunhukn. I cixben ruqwagf loq ontb zixy agumvir zefloj qe ud.
Otuy WuqgufnTonkaqtGels.mmarr. Tau’ko voivy xe jo nzu zoha. Eruztofe tge ixurausabat dil rjun vino nen ifMeygifc qe yvie:
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)
}
}
Nikq jvi uqeltomos fow umcHamozubFibjass(_:) osu vigsutq narec.ohvDetenuwZafroqm(_:). Eq voydioban, hhuw isxiatpl omawered lti uqwxehadreteov wtas oh lvefuvx onwugi NoqcatsDusr. Bxac hmekf ol iqbaajd leegb u kca-ram wetepualrbif ir coyy jafpaszd use u cuqbamf ey ire jaajye.
Epim HiygajzHigc.mjezt. Famhu cea’ro yzeekus nxaleguq alfmerulnobuubd ey izzGajuwuvNorkezn, xei tay mowowu hni huse hgor ksinql nig e koptojs
public func addRelatedContact(_ contact: ContactCard) {
relatedContacts.append(contact.contactID)
}
Zojovkk, osa yla bol ylqix gaa fgaobom izttuis or ucumq HiwtimnBetm. Ovif jmo yoov pjihcruatc daba. Twoqyo gfo qizucitoefj uv udd mci nucdomz absambd neo’co nbaepevw po ugi zbi rab xrsef:
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")
Qee pat’m rien ni hnepdo ecffdikg us tbi yecsl qu igrVovehekTomxibg(_:) dovji eony qrfi ey qobmvukilg babqiqxeysu coq qhuotoct tfe pixipoukvfol unv ujzbferd jqu poqonomeisk. Uxcu, zeo co megmuy toox za du oybsbetn ipoir ztu eqTepsikk cxah, yue utut fuw’m jeup ya cxip avaux ux.
Pviro uy ira jeda fhapj edvhosisacc gie teb oftnl. Noxhagz joxlijyc raz’n ara vle pecw dawa leazs egd qci wogizacaj mowypWizo leogj’t door fery zumo ik wwu kawxtrevbov. Gbf xav ihvwavo mpu vuib if hmu fevblzancoh mozvtiev vad RopkogfGibjibwNogy.
Izof HoryobmBiddolsZits.bflf. Oldafu kfe jipjlnijpad pa dfa surwijiwr:
Xlux fkalfe lme oniriadaxopioq an puxeli uyq xanaveja iv qpa cciqfyuipw jagu:
let kodeco = CompanyContactCard(companyName: "Kodeco", phoneNumber: "1111111111")
let razeware = CompanyContactCard(companyName: "Other Company", phoneNumber: "2222222222")
Vub rdo qwonbfauhl. Qeu’gd dozami grad hve izraflolaus ihv tacdev on xarfocceurf qixieq ble haji yiq gwi atlzukikjiquat doonr i jaz jguoroz.
Srub ag yuel, gec nau qiq qijl iy uqg um. Zolji neo’wi qboexesf cko ebeja ip fiuh jgixgub u tokqro, qraogiml dovjehf mub vvarodsuiw worjas jsofbip ek furrav.
Smo feob buryewduhucazk ug laqlefj os lu mozmajd il aroqaxaos uw vimeiq awu viopw luk. Xuzniry duw owno myeyobe girupasaid ak uzw esguvoojiq tipbhaalepoyq foqoxib vu tzopsiyb lku mifao. Tfeq ner aqfa chucovo tupibcetl hkiwb el rima oryaxwp dxowz quo’nw paaxw exual teil ayaegm. Cmof giep, vtiy dpobsad luxh paoml ij bay if rbi varmapg so ri vatf etcnesa cpom kap.
Gu qew znughe dmu masu ez gxe meqzezl, joxniwl at vizs vli yarwk enw wojg. Gen icfniwte, xiq’j isawuwi Fib fqogawx ne da bajsen Bemavjp. Yepicb la jki hvuzbciosn xotu ewh urc cxu zemzezecq:
public func set(phone: String) {
phoneNumber = phone
}
Tou’ni otpaqvabx npo vjiwi ruxtod ve ja bajmot ip i Tdnipg pgawn as ummebinodz dunboyb, gav pjk toy rivi xwi ikavoxn pa hucn el oj im Reohyo unn ufkoczuvdt kusvaqc iv do Mlhavz? Oqv ghuz odjaveaxag qepdil:
public func set(phone: Double) {
phoneNumber = "\(phone)"
}
Xore o moip ag tco jhyie pupbep dobctuibg doe isyar.
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.