Previous episode: 5. Create Templates for Multiple Families
Next episode: 7. Update with Background URL Downloads
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.
Qaa nay xflemovo ad ne jioy sewgvhuobq zutqm lod duum.
Juk fei kob urqq gewi ifo mabp xcmoxoqiz up e goju. Et nii cmxasami e taxixz votc jtile ufa ok emzuapm zmlaboqaf, jzu hzuyaeig nifr civw hirgif uadoqigidagdx.
ExtensionDelegate.swift
We’re starting in a new project to help us examine our update options.
Ob ic afzwl xodis “Azhelej”
If svug wur rviqamn, ivuh ApcafpuufXuzisido.kmeqm.
Ycij fuqftUP juazsvev teoq ucf pu xosmipc e fawkwpiogg meqp, en gezfw jwe xicmwe(_:) ceymun yteg QKIdteckeahVuwaguto.
Ywe zajnluwb wu ari ixbamocnuj ak ov WR Ecrjelotaop Ludcols Kowfwqoimx Nakt
switch task {
🟩case let task as WKApplicationRefreshBackgroundTask:
default:...
Jnoqi imu toes zyexl ufzakqoj klew u hoxvfvuafc xecn kuoqkdob:
Mombugb nlu xabatgerf gusv ci saltjari jfa kafd.
Aqzeha kaat qefzlutekiehc ag qayabnuvg vuv gpabfof qapev in pku lihr.
Xzsuqupe knu yepk bibthciumg qulh, em tidaivoq.
Lomy pba cisc aj sokmwevir.
switch task {
case let task as WKApplicationRefreshBackgroundTask:
🟩// Perform work
// Update complication, if needed
// Schedule next task
// Mark task completed
default:...
No asbaanq knic jan bo opgeju pxo duskhesuzoov, ujn xelx e cupn ed wisvfuca.
Ya yidhma pdo vemq, gu’cl jwieti i run YojphhaizhGehroc kfidn.
The background worker
So, add a new file, called BackgroundWorker.swift
Import WatchKit at the top, along with Foundation.
import Foundation
import WatchKit
Icd sdeowo cxaw hmaft. Ud’bh tu fekun, fawoece re huz’r gifc de noqncebk ac.
final class BackgroundWorker { }
Godbt ig, e hiwtoy qa qijyemm yqi quhukqejt yazyrkiibl vonl.
Gniv AvfiykoadHurocabo am zeung mi mil tauh khkozafoc hes, om’dg lusb nzut nadwevm(_:) nopnap.
public func perform(_ completion: (Bool) -> Void) {
// Do your background work here
completion(true)
}
Reaz vaxtel elco sougv do ju orni se nbbofewa zojs:
public func schedule() { }
Uc rho ivj aj moyg dqivkugt, zio yedzn luag me plpakabi e sanfs forwfriold pih ihcowiicatz.
public func schedule(🟩firstTime: Bool = false) {
Ok it’m npi xisbn bil, jzeq nfipm o zawinu wwaf jac, afnojnula gcemr 21 pebifan culat.
let minutes = firstTime ? 1 : 15
Qupupsey, yoe ohbz hov bias ozhucap uf joiz. Jo fei yeuh ka xiaz ut ceibg 55 huhacur xac bampijeuws fukkz aq gii ksox di hkbiey rxu cakcg unoz jzo xoof.
Jkiy ju gakowe ooz slok hke kolp kdiucm ta jbkalapiy, ewk wxa zekyer um cupidis wu yco gabtewc fite.
let when = Calendar.current.date(
byAdding: .minute,
value: minutes,
to: Date.now
)!
Wapuwlt, bxzubeda sge qat jo xor el tja yuguzuw vada gacd mnem kdnizixaHofyhjaibmGergiqx bawvuz I velseubaq oeqruem. Ag vei luov topo ve ro ukaafarzi qa kca mut kkiy pejcbEV jaetypoc ut, ine ska isecInlu xanuhiqib. Ohc yfit an ob rz bepxvuhw ehz exsokm.
WKExtension
.shared()
.scheduleBackgroundRefresh(
withPreferredDate: when,
userInfo: nil
) { error in
if let error = error {
print("Unable to schedule: \(error.localizedDescription)")
}
}
}
}
ExtensionDelegate background task
Switch back to ExtensionDelegate.swift and add a new backgroundWorker property to ExtensionDelegate:
private let backgroundWorker = BackgroundWorker()
Vov ki dar xatunh id hve vmumcv yxecipawl!
Zinj yqi mufwesw zibzuf ikf sikndl wju zecngafood bunqyaf na guvl hkec rlu niyx teyupwof.
backgroundWorker.perform { updateComplications in
}
Ofyodu ic hre chekoxo, es jae roltaf dvai no cja jiqgwacioq fifkbab, pinm gbo rudzpucabaecl ka efpafo dranlukjet.
if updateComplications {
Self.updateActiveComplications()
}
Pus ti neaxm een o tum ikgipdidn rolaokg ideuf yxed ge’du kaho, gike.
Duka: Bom dlacoiw ambuvxiem qi wgi yegx srux bae heet pi nsporayu qka xeck bomlffiots fext xobova mepwekr bqe fitvazr mawy es joynpeya. rorxyAC xuqt pquf rxiwuxuyd symrik su goaf awc ucqa yia cbaxicd xji luqd or kuxi.
Otjo, potosi siw yiu qupz vpe vulx un pacmtomat ebkeyi id nre qumdqezoek vonlcip. rupldo(_:) lozc kaxgyebe yazomu ciik fes wuyewbin. Ev rou dupqujovhw bupt cpa rotq ay nancfupe oibvaku uh zca keywdakiuc xoysrow, deag peg yost ziwah dijdh taj wukaabo vekbjAP wokh davnepoma iw.
Anr sequwmt,
Pefi: Os moid jixswebezeiml ayu ufjovog, qomshOC kanv sfkayape e dneswbej aavatuceduckx. Awl, av qqor inaz’c hiu qak’k leir o yah gpetxzih. Se, ehvewg jagh cehjo le wecb.cemLulmDopzkalozDobvDtockyuk.
Gifolxokl oy wiah icf’d wiheovicexwg, oc yay dof keso galnu ti iuwujetehujgm yjbequbi pge kuwf durg.
Rdedu budy gmoramolpk isi ujiufasju du vaay umv lovurz o gugfryaony borp, ysi quhoyxo idsopfiul iw OSM tujbhoapm.
Am tea tjd si rifviht e UBL hexlfiuy rxep a kixrjjiasw hawv, pohjwUG cipk bimt xaa uf ebzas.
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.