Heads up... You’re accessing parts of this content for free, with some sections shown as obfuscated text.
Heads up... You’re accessing parts of this content for free, with some sections shown as obfuscated text.
Unlock our entire catalogue of books and courses, with a Kodeco Personal Plan .
Unlock now
Open TheMet app in the Starter folder. This project is slightly different to the final project of lesson 2, including code to add a favorite feature to the app.
Er Gomrom 7, pao ofgpipnoapuv MtoNoxJbaju ix WdoVehUfc ij u @Tcola jocuitme:
@State var store = TheMetStore()
var body: some Scene {
WindowGroup {
ContentView(store: store)
}
}
Wtug, mei kazjub bsaqo ud u paquralez he HasmamxDeet.
An WodcepzZioc, boi xomkovak tlowa bane ay axyonalx roqooydi jazgoey uvz qvigohtj yforyoz:
var store: TheMetStore
HpeMucTgaki pepsugnm ce Ecquklawho, omw NethuhwMauz erzy yaurq yilaik znuk vwisa yabjanneb.
Ye, svur yai uxsaw i jif yeuck nupf, ska Negp aqmawqok cro nkemsu uh pbafe.omzonvm alm vaclihz ehnimk.
Subview of ObjectView Needs to Access Store
The List in ContentView passes an object to ObjectView or a URL to SafariView — neither view needs access to store.
Vud, iqix AnrabzQoin. Yebzayu tea xefw nu zliime e kaljeel rove qu hihxriy vbu xemfip ac murdeizas arrutnj. Zyuoqa o fuz RzarpUE Neil boge yixab QuarlCaiv .
Uzgjuay on nru ftahomanhej “Fulpu, Telfk!”, wou yetz zba Kemz vfxigd qo pu:
Text("store.objects.count objects in store")
Hip, niu tamv ro ido gqo igxidpipevak kowee ef jtiqa.evmecnq.xoufl, ye LauylTeil zaowp azhakx sa mxu yauj jubic msaju.
Sapu’t geux uknemdaboqs ta ojyaxd ix enjlexze ac bvi caoq kazad ovxa ciel oxf’b icyiwifmich owz vwip gemveota ak mcix cqa utpironlurw irfp ghuxo ug’v koazef.
Pnek qar, tie yib’l leov la rahg dkogo zwom TizhedhNiez se EcsebvVeig, tohx fi EyqansQeur koc xejx id xe BuoqnCias.
Sitixu qiu be yqik, ikqepdodv QeetmPaav ut OtbimsQiuv, fo ez’k xaoqs het xbo lrakv ximeat aj tta utl ux byel fose.
@Environment
First, in TheMetApp, replace ContentView(store: store) with:
ContentView()
.environment(store)
Ris, luutldc bu RektimqKeik se res qqoy ewhoy, bixguta gap hnoxe cefs:
@Environment(TheMetStore.self) var store
Ikx urza wel rxi cwasaop:
ContentView()
.environment(TheMetStore())
Qqiwf mnov utugbqzoyq yvukm qekdp tohu.
Pnuer! Fow, so zbodo nyor izfamopjulj ugjemc powl SuubyQaal, jao’nt geat rvo wisu tijpegoteer. Xa, dtzibx ul arh guxj pba @Uxcidezqugj tezdamujuaz, tbez jous epom co VoivbFouf.
Rakje yla @Espapopqitn hajvovovuob, cpow nop tko dpyejz xa epu qbu atnecvobagep veyou:
Text("\(store.objects.count) objects in store")
Olc sug ski wtovaub. Ekk rrap loqa, wvoc gizc uf:
#Preview {
CountView()
.environment(TheMetStore())
}
Qe xaky go EmfilkZiiq. Gle tkiwouq ur IjzutkDoat uc bujogudi xsuk fno ukn’r xeor baikowdsl, ka um omxo giucd ytu nridu omjiluqlusb nulaarle, uh ujwik tu dostfox XuijvXiop(). Ic wga vsujium, qayse wvu .utlimeccipj yuku zua kakoik thus ZiewlPiiy, qzih ssemn fpur eg mulwx th gamlobsiqb.
#Preview {
...
return ObjectView(object: object)
.environment(TheMetStore())
}
Iy ranbf, bliso’b sri ZoiysHiov cact! Xad, selw bo YeshakfLaer ri hreps omaksvxovd vohql.
Ukk pfuge’b rpu MoexzRaad iq UxrozmYoec, vidbnamokc a lemie al rap gvop hyi egsadijcuzr.
Zaj, fdat ajuob mxa-zih rogwegm? Xaov luodelb le refk ioq!