Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kuidas aitab viivitusbind meetod MVVMcrossi nullviite erandite lahendamisel


Kuidas aitab viivitusbind meetod MVVMcrossi nullviite erandite lahendamisel


MVVMCROSS -i meetodit `viivitusbind” ei kasutata otseselt null -viidete erandite lahendamiseks. Selle asemel on see mehhanism vaadete sidumise edasilükkamiseks, kuni vaade on täielikult laaditud ja valmis. See võib kaudselt aidata vältida nullviite erandeid, tagades, et sidumist proovitakse ainult siis, kui kõik vajalikud komponendid on õigesti lähtestatud.

Kuidas viivitusbind töötab

`Viivitusbindit” kasutatakse tavaliselt stsenaariumides, kus vaate paigutus või juhtseadised luuakse dünaamiliselt või laaditakse asünkroonselt. See võimaldab teil sidumisprotsessi edasi lükata, kuni vaade on täielikult ette valmistatud, mis võib takistada katseid seonduda nullviidetega.

Siin on üldine lähenemisviis `viivituse) kasutamisele:

1. Seadistamine: oma vaatenurgas määratlete kasutajaliidese elemendid ja nende köited, kasutades `viivituse). See meetod ei rakenda kohe köiteid; Selle asemel plaanib see neid hiljem rakendada.

2. Vaate ettevalmistamine: Kui vaade on täielikult laaditud ja kõik kasutajaliidese elemendid lähtestatud, rakendab MVVMCross hilinenud köited automaatselt. See tagab köite proovimise ainult siis, kui kõik vajalikud komponendid on saadaval.

3. sidumisrakendus: kui see hetkel on sidumisraja osa null, võib sel hetkel tekkida null. Kuid sidumisega viivitamiseni, kuni vaade on valmis, vähendate enneaegse sidumiskatse tõttu põhjustatud nullviidete tõenäosust.

NULLI VIHETUSTE LAHENDAMINE

Kuigi "viivitusbind" aitab sidumisprotsessi korraldamisel ja ajastamisel, hõlmab nullviite erandite lahendamine tavaliselt tagamist, et kõik seondumises osalevad objektid oleksid enne nende sidumist korralikult lähtestatud. Siin on mõned strateegiad, et vältida nulliedusid:

- Veenduge, et ViewModel on seadistatud: enne sidumist veenduge, et ViewModel oleks vaatele õigesti seatud. Seda saab kontrollida, kontrollides ViewModeli atribuuti View elutsükli meetodites, näiteks `ViewDidload” iOS -i jaoks või Androidi jaoks.

- Kontrollige sidumisradasid: kontrollige, kas ViewModelis siduv omadused pole null. Kui need on, veenduge, et need lähtestatakse enne sidumist.

- Kasutage kaitseprogrammeerimist: rakendage oma koodis kontrollid, et käsitleda võimalikke null viiteid. See võib hõlmata null-tingimustega operaatorite (`?

- Vältige enneaegset sidumist: kasutage sidumiste ja selle komponentide täieliku lähtestamise tagamiseks „viivituse) või sarnaseid mehhanisme.

Kokkuvõtlikult võib öelda, et kuigi "viivitusbind" aitab sidumisprotsessi õigesti ajastada, ei lahenda see otseselt null -viide erandeid. Selle asemel aitab see sidumisprotsessi korraldada, et vähendada selliste eranditega kokkupuutumise tõenäosust, tagades, et vaade on valmis.

Tsitaadid:
]
[2] https://www.mvvmcross.com/mvvmcross-9.0.0-release/
]
[4] https://www.mvvmcross.com/documentation/fundamentals/data-binding
]
[6] https://pvs-studio.com/en/blog/posts/csharp/1049/
[7] https://www.mvvmcross.com/documentation/fundamentals/linking
[8] https://github.com/mvvmcross/mvvmcross/issues/1508