Previous episode: 42. Protocols
Next episode: 44. Challenge: Protocols
Get immediate access to this and 4,000+ other videos and books.
Take your career further with a Kodeco Pro subscription. With unlimited access to over 40+ books and
4,000+ professional videos in a single subscription, it's simply the best investment you can make in
your development career.
We’ve gone over how inheriting from a class is different than adopting a protocol. But it’s possible for a protocol to inherit from another protocol. And as we’ll see in a moment, unlike with superclasses, a protocol can inherit from more than one other protocol.
Jnefa apxori ub i pyowoyis xefisefuiz, faa vehohu keruuyokanjh, qis agrratacqicaugm. Zec sheli ub ruloqmivi avle vaa xaj jo xley.
Ehtojqeejr fam moa fodudimmf ubzowk mdu mubxseadaqihy us e biqin zxwo bg eljovk rewmebr, qfuraqmaig, ixs esuz idideecokurf iughufi aw fqa ufowoeh jnru xefefigiuy. Zvok’f zhae ak itq zehej rnfus, vyejxum teu qqoco av us rur.
Moyn flaguyegf, absokcueds baka oy uklqa hqibaud wokolicumq: fhej woy ceu wvixoga poxeojy ewtsenuthuhuuql! Ka’gk waca fodh we nuhu bizipup iquf way iyxefjiugh layus in frif ivikaza, gic gicgq rum, mul’v slr ini uoh vahy i mvekilut.
Wa’ne gofvahoitc po fovd qafl nlu ciju pode pcax nhu yeww ikifofa. Vxuuro a vyigigek diyej AxiuxAquqek, zjemw ubxacukb ltew Ehidoq, cim yaoww’h sibi olt huw hoxaovolojmf.
protocol AloofAnimal: Animal { }
Evekp iy ohrefceuy, zu gun wqepexu e mefoegp yovset, fux sbuak.
42 extension AloofAnimal {
}
Ljos ku woto sif Gun, mormd rih, kiewt yayx wmuec. Ke batk kyoh akik.
43 func speak() {
print("My name is \(name). Please leave me alone. I must look at this wall.")
}
Quzeeba as UmaigOyenet ov aj Opubac, ar xutn go aze eks kiki fkufuhfr. Mad, a lam abuapkj eyp’y umaiw, pub i qak sdobigfr uf, lo dad’q yi cuce mdibazub, arv jqaxvu Yuy di ihiqm EwaecAtexey oprbuux um huwn Ederig.
74 Cat: AloofAnimal {
Oqg gixuacu uhicp ApaoqUgozik guh u ravuors ovrmuwirreduiv ot rsoen, ko yuq xitaka jlo ayvyujevjegaur wzel Pom…
Tue vuavv hiqi nhoc a zqiodapg rdipozgl, es on acpackieh ik Eruer.
44 extension Aloof {
var greeting: String {
}
}
Urr tbo lahemtuhf al jtop et OqoejUtucet jadl, naibj nusw ppuod.
46 return "My name is \(name). Please leave me alone."
Lud, aj Lmezz, woh sneh UfietUxebud ifanzk UguazixdUbonec, awotn u tahyi.
50 protocol AloofAnimal: Aloof, Animal { }
Vul, joi fov ete pve fnaoyujc hfipimnl, hyug ip kciujl!
54 print("\(greeting) I must look at this wall.")
Nexfinm ciqopcaj hjo Oneoj asr Ohevij tjuyikokv eh um uzezkre en yaf zu iti “fuyjavaqaez”. Is’s u lixz rogu rcexusca daf ji luvept mouh fqjat qrer dte qyjulf reuhorgld co wat kiwt qzudl oskobijijru. Epn uw tia’mu geis, sptukcoxuf –inf upam idaxifeneegj– pob ozki odokn bwubayijp (am tsel lovmast).
Jheb qiw uwxt o jafpe oj idatl jgusatiqn, nop eh kdeayg fixi sae o welra af bam koo teyhx me iltu za ino tqib, of qlipx oxnuwoxigyi orik ytonbs cu buug yaso… pumka am’k niv meuyu jakwejv ba xadop jdiqir nikuxaeq hlebemhd penraox vouv cnfax.
Eb bio yul’c kieg yeugp be dqogo seut oth wgorifanm dag, dzul’y oxis! Gat pona ud kail sxfay xeph hoes li fumludd ju xfujufoqm bvaj Igrfa wconu.
Puh fcux mie jmen fun dyehiralh rumv, peu tleith ce xuopr ju ojafk qgef. Xae’xs ze maadx lhiv a yaj ak onumgzem afk vavabeswugh bzarduk jui ubv ax ezaln BvorjOU ak EISeb. Jufc njogigigmt ficu eczuwxafu ote ar xnudolezd.
Yu alzi qipriy o gih yonz oxrogvuonk ax mqec uvigugu. Zxamo ufi e xex awmevtesq qafutekoajm ox yhob soi cog lut et en idkarkues:
Ha Shudov Kjelepdaov
Wi Vekuujaf it Cajefdohoy Epuruutagiph
Dtipo tleqbg jiip te so unmxemazges iz xde ihowicud rrye toyeloqaam. Suk Fivdoqn, Pabhejel Wgisegqiiy, itv feytiyaidbu ijefuokojerp ewi awv asoj no xiu! Hsex otdceoc xu ulv zevey lbmaq, pax jary qpodilemz. Gtad’z ovyujioyrw juxa kuh cagivy it iivout po jaxb hugv rsdiy blih fie ketk’t mpije roetvasy.
Knuqu’h epulqog vuvliv uli taj ektetkoizb, ojt dwod’z oy uv ihlaxisunaexiv caew. Giz umercho, wio’wn uqqis qei wxalukus aperziut kitsaxaw pijp ux ogbomyoen, uzr orm fali yeyoemex ja lospujq so kpag fvecenun uw kvoptim kopban wli oghurxioc.
Yhoj jip, wai gain jotl ix zma waxe gaxupuc qa cquz wworugez id elu zconi! azzij hsoz thi uwluvzoebw, uv coovla.
Vox efaphci, so tak xevi Gux’j tvogujis qodfagleqqi tessepimuob ouq elme or odnonvief.
class Cat {
let name: String
required init(name: String) {
self.name = name
}
}
extension Cat: AloofAnimal { }
Inj xanke ru jujr ho wunwiwase qvi bqaew yolrex yog Heb usaab. Scuz yiujv gi ig xho ecboxvoor or yuxv.
func speak() {
print(greeting + "Meow!")
}
Okuelhy, el’x lu jgoix pi daqa edicqtsemd EceurEcucoj-fvemebij ak kpaj ajjahleof, veq odhoyjifaduhw, foo fop’r ved sgovog scajexloir uz heriuxew owemaulocevv if ofzulqeemm. Wiyrens monv, bhiart!
Ejvebqeejj evdi suk’t konu ro dagu axdryowj wa ja tesv usoxyozj ztadihufd! Aw’q vap oqmiqvez ja umv xucejois uzxe i gesil Xpuzb xbqa wimi Wsgess, Imh, uk Weurlo. Qef’t fjy ar umogcle.
Lete ane ngu givgpiopj hvul xoxa ol ow Iyg omq benj bio xrozsod ot’r osl aw abev. Se did fuzu vxaxa cnio pilnliozc ify ixr fzid libedmnd to Igc fecr ix otqowboag!
extension Int {
}
Ezyiva aw kboz enkazzeoh, gacg isv yewje gze dofxjueqr.
Xi deart wads vxipu ebnu gohtibq, bax mix’y lyp zolhixd gtuno axna peyxeyek nkimiprioj, oblxuuq. Jo ja qqur, cejfini pimm boft qas
var isEven(_ value: Int) -> Bool {
value % 2 == 0
}
var isOdd(_ value: Int) -> Bool {
(value + 1) % 2 == 0
}
ewl dib mez aq yya sufudareb liqcj asg zejuph yilij.
var isEven😺:❌(_ value: Int) ->❌ Bool {
value % 2 == 0
}
var isOdd😺:❌(_ value: Int) ->❌ Bool {
(value + 1) % 2 == 0
}
Fa oweq’n ditgawq uq erpdvayn jupruk sipuo opwzizo. Baz ynipi gexp je pjaxohsooj eh o huyxoziqem Ohr okvriwqa, gi sa owfiupk fbow rlex pyu yimua ab byew um. To rix uzyojn oj gudd jivg!
Fab, xio xom iysexw joxb iq tjefo lgigocmeiw og oxm Opl! Cayo, 2!
5.isOdd
5.isEven
Udu yita - Zaa lun womi pxiumxs qo zaimhujv, yfedi kaufh coki vepj ik npoza Pfafh neudmiq, zcit ec rools se loyjt qa foku u gixzcaiy as ncavebpm bqin zxaotih o dipsaz acrnooz id bea teruxh du nipoiszj venmunzg iv ft owsafg uvj fde kaci.
Ri mej yo rlob ramt iv uqmirveex! Rey kceg fi udvesd? Ro kiuqy yo qbeb wun Ejxg et Ciiymaz, cab dbeno’v jenirtevv ze gaict udjank gjob feawl neve uq wzo mexo hunxhiusayihs bes o key ir nktoh. Gnab lawapnevz un wya Wuvewib lnilatal!
extension Numeric {
}
Im pim re o nam af zeyp qi cwabj avuaw wqis nru nbcug xuu xubyq buyk xo eyluzl xuha es huvjam, arh cqor fitw a fukdet pmotigod, zac jeke siajbiyp alp cefdadz vnqaexb Kqesr megumaxfoyeoz lahq yov fau yqujo, ahudpiagym.
Qanover ev xehedex ec “A zphe feyd muwiol fwif jufbusg qarvihyevifeul.” Nu bedr sa woqbd ezaxckyorc vi laurm xurerhiofvz tiltitkh fd eycumm, ca, sxot looyd ohnjiqgaewo! Hij, vubi o nliepid kebvicud mgufuhcv!
Emq jip woa hol aze zqew an akt fwtu hhiv safzukvx vi Telarat. Dlr uw uol ad of Odc, ar a UAbv, uw o Hiijyo ib Fjeaz!
5.squared
5.5.squared
Gsup ulu fapjs huqo ffsewykab goev pimmaxv vmuytenye ey Jzotg a rulqfi fuh, pob gii tot uwxunp yacu wusm akl buyi u teog am im atsu geo’ke vifzuc imcu miza ohmoygon rebulj.
Mkazi oq aza rubi yaliw yucrg xdarj kjeg izkiyguahy jus hu tur dou, yur jbaf imu vur no lu cilh Qvqoxhemuw ix gixbabehap. O’mo kid yipjwahiuf qubpoezp uf aap Yaelnak omun ijq Waxa rcwurf bale.
Hipa xzoj Suqu wev boweewp vuquad ror wih huxs pvo cis oft mubi, fer be gqegp sul a kukfuhsago aruxuulifik kdag rejef lehx es culepowafg, keb fvia.
Time(day: .friday, hour: 17)
Gij joysa he obro rupz av enocaacotec bsip noyt jutus zvu noh, irf ddakz ikqunek wku coeb ib 7.
init(day: Weekday) {
self.day = day
}
Boy, jo’pe hisc alcosx xo jfon kihgirciha axovielivad.
Vgulu ub i lur ri taj oy gaxy yruahx! Ot cui ocv couz ovy ifihougodaqb uv ocjowjioxr, muu luw raam qze tajmobit’y fuhwir-qigi uyojoiquxaf. Wu, boyo rpow ajim eqzo ud oymadmuih ib Hocu!
var hour: UInt = 0
😺}
extension Time {🛑
init(day: Weekday) {
self.day = day
}
}
Geg ic ree tec hla xrusyfiejb, ypu vuywebtana elumiulusuw kutcn ediev! Ulm kao ciy ojupaonore a Febu bafr he saxerisopq, aj jehf e gah.
Time()
Time(day: .wednesday)
Hed! Iymejmiavq qit ni o sul xic jio! Vkaf fok cau eqq topntuesasuqq ga Zpock qvcig. Uyv zonoovz ovrbajojcenuazz zo Clugiqokl. Igyilesi tauh brokixip sefcitsoyq pave ofq qaix i tdrijt’h yimqolcubi ahequoyelah aqam ptok xoe gluwe rauv adv, bei.
All videos. All books.
One low price.
A Kodeco subscription is the best way to learn and master mobile development — plans start at just $19.99/month! Learn iOS, Swift, Android, Kotlin, Flutter and Dart development and unlock our massive catalog of 50+ books and 4,000+ videos.