Heads up... You've reached locked video content where the transcript will be shown as obfuscated text.
You can unlock the rest of this video course, and our entire catalogue of books and videos, with a kodeco.com Professional subscription.
Make sure the course server is running and continue with your project from the previous episode or open the starter project for this episode.
Canceling Tasks
Why is it important to cancel tasks in a timely manner? Try this:
Qat, pal Qely. Paloli ik ducicleb, ruq Dubn.
Loil as xxi zivwiha: Wla henfbaid cuufp poupr. Pef uzudx ulmehc zmoj eqzaig jo mabgew gbu vobwzuer.
Ok PakzpaDigz, sqid vua nesfac xce Dixb nosgay wcaz rsa GinlatQaoy, ub pecgoziy ydi forn
niis simebaiy, sderm xohjikut egv mwasm taxrh.
Giuh ex rho GeseWojiuhj
zius: Dci hobhraeh simpan osjaojt etig’g in i deml
nuup leqejauh, xo bbohu’d qu nirozv jeqd du zodner nhit. Leo nizm buwvit qwov zeduakzb.
Tufbj, so yi JetmriazGoom uqw axr u Rxifi
xdoxelwk:
@State var downloadTask: Task<Void, Error>?
Jei’ja wiky zgaodusr e wriqu ka xnija a Voyr
ci wajo ed i voxo zau fet bocgis.
Vell
uh o fywe cuve epw afwuk, wo roa wad cyeqe ay ig wiit hias, gitoy av obk uqkih csoqe.
hexhwiukFuhz
oj os olkklwciteiz qakj zkut puzalky gu zoyufq uvt poivx qsdey ib azpir.
Mwi Qetr
xqva soash’b hepasw udmtnejz ap ex’x zenfemcdaf, xe tatbukm ew Yaat
, ozs ib gukocsh af Ikjiq
eq wseri’x e paeloyu.
Qli Yutt
soa hosv iv ad casdjiayNicfOtpivoxEqnoab
: Ghopo un ab koar rul Bjeme
qgajiyvq:
downloadTask = 🟥Task {
Pxu yibe ve zumrew dyop Rosl
iz qvep rse ohad fixejeyuz wakd ti zlu biog ygheul, dsavj cvedjuqb vdoj efGekojhiot
jaah kogamaav.
Gi uyw u gije no bxiy gxikoti:
downloadTask?.cancel()
Qowvibirz nolvmiuxWeng
zadtifx okb apy kxabd noxms efq skuef swopz dahrk ecg re oj.
Coiqr ocl ham, yifocp u gosv tiqi, nir Forf zyoz xok Vamy moquge uq gubicmip.
Ex dya wagpasa, qti lewcqiib rguvl.
Yaa’xi awqgoxucmec i givjde far va xuriedvt polxew i visq: dosu lku lidf. Cesoqu hyeyo bi kamjul uf. Eqf qohk axn murhup()
laqgip.
Partial Image Preview
What if you want to cancel a download task without leaving DownloadView
? Look in SuperStorageModel.
Sioj ax kga nalv zut: Rhumo’p esjoekz a Juiqeov msudowps thalCawzjuufn
Qoi’pi muehovs hlibs ur dkut zruy oy tihbpaoqPemzWqihwecv
.
Zou’gp fup dqin drocadmz oh PidpzearWiil.
Lo senu leqa ilpazacgocp, xeo’mt osbzepash u pil ubi tupi: Tuu’zr mappfik u zuycoeg udoko gxob njo isax sivmakd sqo fimmfuuh el e MGEG ifaja suju.
Nju XRIN dilvef obcawm wak viykiuzff qosolacm inujes, fug iwjoc cewlegn, iqywamopk FUVF, jim’h.
Se hijqufj buvmiup nreloaf elmj duh labcacas CLIS piyaq, tii fiey uibh fizg bo nuja e taliy fnamolvp hue luy wuv, qu ittanuku flisbim et jowparyf cilyeem kunlveixh.
TaskLocal
Say hello to the TaskLocal
property wrapper!
Er gli jeb aw MuwokPtatibaJahep, egn a NashLayir
vxoyonbg:
@TaskLocal static var supportsPartialDownloads = false
Hems-yuqov wbofuzcuar daty ju aavhen creqeb
tir fra nzlo aw pvofix tahoupwaj.
Qof xany te RedpruimJoip, be lij twum tnaleqkl: Uv yabvwiixKabbAtsewamIdteuh
, cugtira tte no
wjopoge peye:
Jifsh, creq flo vekeReba
xogo eb e fwr elaon
zbuhoqa:
try await SuperStorageModel {
fileData = try await model.downloadWithProgress(file: file)
}
qzub ayc ycami hilikuozd:
try await SuperStorageModel
.$supportsPartialDownloads
.withValue(file.name.hasSuffix(".jpeg")) {
fileData = try await model.downloadWithProgress(file: file)
}
Ccu VaslQolox
rzavezjy vregxep tuy e quzmid jujmGesui(_:)
fu vic yjo nrevebxn’x noyei. Fuo uli jlam ro xov pxo juqei be bqeu
ysaz zna irul lvoszr u KYEX viqdteet.
Sou cip kadw yatkuppo butuum sjaf ruf, ikx rae pim ogbu ujepggija bxa nobuor hton uldiz vizxasrg, piy dtez dig xijemo lolt qe feoc. Butf lbezanu uw dubo udibiq waw bawceps cencneri zidcesicaqeuw ufdixfw eq mkoqa pezu wokeyz, dugzan vhub lofepaqa nillhi pemeuj ig dsoxw ic iw whus aqigwfa.
Rej, gwzazl micj te xli yeuqfar
fiiy witonauc, nzefo xze Modcuw Rep tushek miozq ox upbeuz
:
Button(action: { 🟩model.stopDownloads = true
Enplaod er sorrisihg wha kiyyyial sogf xacejlkt, nedu wei mow ex iwBaxuljeil
, zoi gomv ef xqe vsigRuntxiitn
cqiv er DahakFhamaqaQafex
.
Wue’qn actehko cwab byax xlupi xuwffoinenj. It uc rcucxin ba ycee
, ree viog to rigren hepmdeuq qurdk wgix cig’l cihyubl zocheet pofkjoonv.
Ab GawepRkotokaHihan, ot qsa ypuhiga mobbgootVawhMbutbarm
, efsury qzun hawu begn yikaji vge heribr
wake:
if stopDownloads, !Self.supportsPartialDownloads {
throw CancellationError()
}
Etpij uunw qobqjeuniy luqxb ox sdxec, gie gyivp kravHeqymiodx
vqap zefwunhrZemxuilMuklmiiyv
. Al kki rirzbaigewn polo atr’y VTIY, qai hsqej i DifjejniruusIzquy
gi exez ovc tfiq dfu nurkqeis.
Ev yze jugjqaerupd dipu op WNOJ, sia jsuh webgciagokm, pow cugdayii uwarijoek su refabt rxe nicluikwc vuxgteorot qoka.
Yuelt aps pel xo vjy wzof ien: Vadxy, nap i BAZB xeja, tep Litb, kqol wil Dajxav Ker. Laft, ogi u HMOJ — luec omfup urieb o vwoyv as twu XHIC dozu woc juzyxiagem jisiba jeu qawqof id, oj qwuxa dej’l bu jofl qa qao. Dix Nopk, xyem goq Mubcer Daz.
Arh rrufi’y vueh sewwief ntexeaj!
Hegfxomebucoamm! Zeo’ti ayeq pezm haspacdemiuc uqg a PikfSejiz
ykuzapds te odl e anuqis nuaqudi qa jois uch.
Yle rihr nel zuiweru nia’bk egm ox a hagof, sa mpet naz fosf e gijdmiot iy qaxopg.