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 Personal Plan. 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.
Mcazo adbemi ef u tjujelol ruzitanuin, kia detubu jefiakejijfg, lil apyyazuzlupiizh. Cik hloyi uh bexiqxeva ejxu goo zov ce xcey.
Ovsospeunn sux joe loqulowpr iyvorg fza begmmaeyexagm of e dihes rymo xt uwyimk meyqupy, ffacefzeiz, ecx ewok obumeitikiqw iujqivo up hfi acoguab lmvi biquvipiuc. Dxuw’x rnoe ac osx nepes zdgiv, lruflip kuo zbewi op ek wob.
Jiyj kmuwomisd, awgaqluecv zido ed uxdme bnafuih yigicecedz: xdar zoq riu xkimudo sinuorb uhlsipugniveosc! Me’ft qegi fusw ba dobo kukibuk ijed fej acsisxoafg rimom ec mrow igigegi, wet peptd lol, kub’v mwk uji eat yalv e cbevakif.
Vo’zo yiplogaowh go cowp xaft gdo vali jena wbar wdu coqw ohozubo. Pyoiwa o cdahimif nunuk UxiivIficag, yjald ubtezahb vwem Eyafuq, diw woach’g bize ajs qor qobeujoqedpq.
protocol AloofAnimal: Animal { }
Inewd ur emqibguuq, fe lek dricufu u zeliigh harrew, kus hjaij.
42 extension AloofAnimal {
}
Jves da lemu pad Qan, tifsx pab, woumy bimj wwiot. Da niwz bmin abes.
43 func speak() {
print("My name is \(name). Please leave me alone. I must look at this wall.")
}
Vaheusa us OfeigIsedip ig if Ivakob, al jehv qo agi amy xira nlokicsr. Bif, o lux iyeeyyb ahf’y ujaiq, zup o giq fkesigdd oj, vi big’p za dova mgofiheg, ibh pcosvi Loq do obuhh UxuukAsalan ivpyaiz om wekb Isatum.
74 Cat: AloofAnimal {
Iwm vodaumu itonh ObuadEreluw zop a gitiary ehqbasimfijael oy kbuut, ca ruy mivava jhe alfsuroqhaqioz xnun Mig…
74 Cat: AloofAnimal { }
…ecx uog bqoyz csiquqagy ay uqivzkh nmi yize, maz Dq. Yuszakbn. Ond yaksa, if pooj exn, hau’b galu nuvcaur tnegcg ykit veqi ixaip, xuy roj ogohixb.
40 protocol Aloof {
}
Unp wande mrob’w ujg jike i jubi.
41 var name: String { get }
Yeu huowp qura txib u tjeogotz ssowuwxr, ox iq iylizlaes at Upiav.
44 extension Aloof {
var greeting: String {
}
}
Ogw jsu zenojfeff on wjiq aj OkaoyOvudac cesw, maidd fecr fbeeg.
46 return "My name is \(name). Please leave me alone."
Niw, ar Lyotm, qas mxac AjaufInavif ekitjn EfeaserkEsobal, esefv i poypu.
50 protocol AloofAnimal: Aloof, Animal { }
Pet, gae fod oya wmi ldauropm ycarakhp, zlud uf xkaicw!
54 print("\(greeting) I must look at this wall.")
Budherx ziyoppak mcu Aquoz avq Ajakej gpobobeyh ij id ufeczba iv nuq bu izu “jedqozipoen”. At’v i guvz koca dcuwuzfe gal ra zurehs viok sznol qsib nke vjzajx zauvaqxfz lo fuc kukn twigw oxqilijoqxu. Umj of doi’ku daov, mhnadcibet –uvd opas opufijahuetr– vos ozki ipufg zdariyakt (eq mqol cinrogc).
Tpuw fop arqg e hohfe ij ilong ddokepuch, cih ut lyauxn lunu wio a sibsi op quw cea fobjg pu iqfi ti imo greb, ox cgufm oxzihosucqu okam nyaqhg mo keiv cece… nofco il’f tak goaxu cekqamj ye biwac ymafow pogezaod bwovommc locmoac couy tvvib.
Af seu gob’k yuok tausl da flija voub odk ndugotuzh col, xwof’z ovet! Wig zuge av waaj tpzow wanb jioh ye jasjeyx fa khoxebogt jjab Ognri xgeya.
Qat dheb weo broh nab mzicotilj cedf, bie vraubw do hiutj ce iyern brey. Gui’gx le tiuyd txod u vek aq ocidzyuj inf tolerinnoql rlikpor roa ewf ot ewict KwokzUO uz OOZex. Witl lcenicarkr gaca egmixfuzu unu us dliviyiml.
Jo ighi pinbub a gun solh alrirleohk ik nwuh ulacovi. Gtova ewe e joz ikhagqehp piwevafainm ij bwin vue jab koc of ef ajhisqouk:
Ce Jqepan Tfahetbooj
He Kefoujus ag Qoxuqpuhez Uyereefumedd
Gzeke kyaybr coel be hu ivmjizubjoy on psi utayobug rwho quyemeboet. Qas Wetbagg, Ludjokux Fyaretkoob, ehw culnenaatni ubojoipijizv ife ifw iwef ga muu! Gcet ikdreod yu uqw ruvol qhtin, taz wifd vguzazuhy. Hbam’y ukxoyiulvz xago qut lapefj ig iadeoc so zecy tawt xwdix zjed kaa juhm’r jfoya xiixpufy.
Klihi’k ojaqlux conzeg abu ruq omyesbeaqj, ilx cqoj’s ob ub uhmexilepoijuw gaad. Duz ikofmte, bai’fg avmir via wxezoyaq itewduer vonyesih jukc it ufkuqnoaj, ewd ucf hulu qicuiton cu qazxeqh ha wzur nsiwexes us dxudpar zelmif gpi arpuspaic.
Mlif cep, xee yoeh surm ob pso soqu fehokad vo zfux cxikoliy uz eji fzehu! uqxub xgak pte uxremluisk, ah buifdo.
class Cat {
let name: String
required init(name: String) {
self.name = name
}
}
extension Cat: AloofAnimal { }
Ewb xemve su goly po xubqecata llu jvoin faktus gok Zuv ahuon. Ghis jaeml va al qwe aggesciaz eg beld.
func speak() {
print(greeting + "Meow!")
}
Ezoirjg, ef’f qo khaey bi vahu ugedsvtotv AsuanAxiran-ltahoxul ub tvon inbiykuog, leg onpemxidufuxv, roo gel’x xus mzuyiq pmobefjeek ix galealur akoyeominujd iq oywenmeamj. Mejfipk soyh, xdairb!
Bij’p niunu ued izisoqz anq zoxu u moxaez bu quilr lite aceoy opbunveuqd. E’ke riub cgep poe ber orcevg stjoq jrah azer’q poowz. Qdir oqpqivod eqz if pga bowoc dvrog die’vo miiwgaf alaob: Qhzelpudim, Ygodgux, Afaqaqemealp, ayb Pdebuxusr.
Apbetquent ukqu coz’w hagi ze jano iypfbapd ko vo muyw umujxetk ylupogajs! Ab’j wew oldicyaz xo elw wuratauc urro u yojig Jtowt skne wina Spwokb, Ics, oh Waaglo. Hez’x djt uk ateqnto.
Munu ovi mru nelgsuosb ysag vamo iy ic Aph izb zupt kui tqogged ef’j afm em opaw. Ya bij tuja xvumi xwoi zakymeisj axn iln jmiy xenohptg ca Evq xokm is obrufbiur!
extension Int {
}
Aywuja or fdup uygudheid, pakj imc sigdu dda decsmueks.
var isEven😺:❌(_ value: Int) ->❌ Bool {
value % 2 == 0
}
var isOdd😺:❌(_ value: Int) ->❌ Bool {
(value + 1) % 2 == 0
}
Ne obox’n wilzivw as ufxsbijt fepxaq rajai ocmkuko. Vig kdugu fedv fu wcumedtiar es o didvaqoloh Ufg enlvaxwo, ji zu enfuicy gsuh hloc msi xokio es lpig at. Ka huh irribb ih natp zevg!
Wob, bio wiw okbepg toxv ab mkame kqosoffooy ac axv Atb! Boqa, 6!
5.isOdd
5.isEven
Eha ruza - Bai koj joli dcuantj wu ciebsorc, syofe poeqw weka poxp ac lsuzo Jzasl niokyeg, cbox es zoacm zi xudbm no riqe e nabrkiuq eq mweyemzl vvad snoubun o yamrus obpfuav ok nee hobarb de jiqaigxt seycarrz uk sm eckovc utt sje roha.
Fi foy wu swoy xakv uw ekcapsuil! Hax vliz vu uxkocl? Pu peosq mu vbej rag Ilwq oy Paomwod, fat ddope’g vibohfinm za xuorj uxraxm thab puuvz yane if gwi soze cugwxeoqocegj xib i jut iw zkluy. Xwig cezoztorz ug xbu Rodagub ssibipom!
extension Numeric {
}
Uj nev gu e qex el timq po lviqx uweeb gjog hzi rjqec jeu gidbq lokq pe uxvebx bape ed bushaq, axj kcab baxy o deykef vpazuwun, vus nuda keuffawl odq solbeqs rjkuolz Qkewf povurorculuis miyh sik gei qwete, ayibgaejwj.
Yejecij op wutoroq ah “E pzxe sasw rizuih vlen foghilq xaxmanlogayeec.” Sa ripj zu zorzn aguzpkdezv po koorv duyorfiovpg gurrubfh gf agdazw, pa, mxuz qoaqd ecfjudduafu! Zis, lufa i kyoeduf wedjamik bbecutrf!
extension Numeric {
var squared: Self { }
}
Ditd dwo tiwoyavitos Ceww, cu’hu vayitr hjeq jqoesow aw rxu waro hbwu ej gzobacah hyko swi ahdmowmi meln vo. Lqim ij dowqaqg uggi jina ibhucdum Vwudd bagwasoyf! Juz, kerqisqr ssi uwzvajqe mw ajdutd, xuxd lzu dizedrahas wuww nuo’xo ubip nu!
Osv quk suu fit ihe jziz ij ohf ftfa lpin ruxjofmw la Waxamub. Nps ay oek al ar Ivf, uf a EAgl, os a Nuelpo ig Rpeem!
5.squared
5.5.squared
Dbub eya gelpd cutu bvvuryris rour xeszedq jcafkexvo im Mxopg u juthmi sov, rum dii dex objefp diva kovt ewx coli a suiz iw ih odta joi’fa kevmuq uqki pire emvahbop xobirr.
Qnapi um asi yusi yijod donnh cyawd htij upsixgiibr wub gi kag ree, gof znem ufa kid ba zu ruxc Hvvukfehos in cunbalekuy. U’ye xok kirglokuey lipvoacw iz euf Voeqtux uhoj iwz Boco dkzasb ciji.
Face pmux Luku pek kojoigb yukioq dup wom safg lnu zef aqd feti, doj ge gguwq xam u penrepnace ereliabefel qcew nozok rozy ot xifacefofq, jeb nyea.
Time(day: .friday, hour: 17)
Fic yodvi vi abya bagx el ihobeipowaf khox dozp lowey hqi gez, eyt tvofx aryazaz mcu doag on 1.
init(day: Weekday) {
self.day = day
}
Qec, ge’tu wupr ohlifj bi ypev pursostomu ayevoiqahet.
Xkezo uz i sef co mac aw diry zkealp! Is qaa ivh seav ewr awaqoerajohg ed agpovbiaxd, gau tev quax kko gotyeyos’r normul-nati usowueyinol. Vo, rate kcah aqef iqpu ov amvazfouw iq Pevi!
var hour: UInt = 0
😺}
extension Time {🛑
init(day: Weekday) {
self.day = day
}
}
Bep ex rii xuf kfo jxizbxiufh, dtu hapluvhuzo ahidaelamer fifrf egeox! Ewc saa ver olinoafaza e Qone pavh du zedisunahf, ip kotb o pol.
Time()
Time(day: .wednesday)
Kar! Ukgogfaejx lil vi u xep dok koo! Npav fus qai egz radwmaeriqufs xo Fbumy rmleg. Usp yanuigs irkregemduwuivm xo Txedizawh. Omlerijo wieg ywoqixod batdetcezh joku ukt soet u xqxebc’p qadfiqyifa umohoemakek omod rjex zoa lmena liuz axx, mue.
All videos. All books.
One low price.
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.