Mikor használjuk a nem birtokolt vs gyenge értéket?
Pontszám: 4,9/5 ( 30 szavazat )A fő különbség a gyenge és a nem birtokolt között az, hogy a gyenge opcionális, míg a nem birtokolt nem opcionális . Ha gyengének nyilvánítja, akkor kezelheti azt az esetet, amikor valamikor nullára kerülhet a záróelemben. Ha megpróbál hozzáférni egy ismeretlen változóhoz, amely történetesen nulla, az az egész programot összeomlik.
Mikor érdemes nem birtokolt vagy gyenge terméket használni?
Használjon gyenge referenciát , amikor az érvényes, hogy a hivatkozás élete során valamikor nullává válik. Ezzel szemben használjon nem birtokolt referenciát, ha tudja, hogy az inicializálás során beállított hivatkozás soha nem lesz nulla.
Mi a különbség a gyenge és a nem birtokolt között?
Az első különbség, amit tudnia kell, hogy a nem birtokolt referenciának mindig van értéke. ... Amikor ez megtörténik, a hivatkozás nullára lesz állítva. Mivel a gyenge hivatkozás nullára állítható, ezért mindig opcionálisként deklarálódik. Ez a második különbség a gyenge és a nem birtokolt referenciák között.
Mi a különbség a gyenge referencia és a nem birtokolt referencia között?
A gyenge és nem birtokolt hivatkozások sem befolyásolják az objektum hivatkozási számát. De a gyenge hivatkozás mindig opcionális , azaz nulla lehet, míg a nem birtokolt hivatkozások soha nem lehetnek nullák, így soha nem lesznek opcionálisak.
Mi az erős, gyenge és mi a birtoktalan?
A legfontosabb különbség az erős és a gyenge vagy nem birtokolt hivatkozás között az, hogy az erős hivatkozás megakadályozza az általa mutatott osztálypéldány felszabadítását. Ezt nagyon fontos megérteni és emlékezni. ... Más szóval, a gyenge és nem birtokolt hivatkozások nem akadályozhatják meg egy osztálypéldány felszabadítását .
Gyenge VS ismeretlen
Mi a gyenge erős és mi a sajátja a Swiftben?
A nem birtokolt hivatkozások, mint a gyenge hivatkozások, nem növelik a hivatkozott objektum visszatartási számát. A Swiftben azonban a nem birtokolt referenciák további előnye, hogy nem választható. ... A gyenge és nem birtokolt hivatkozások sem növelik a visszatartási számot . Mindkettő használható a visszatartási ciklusok megszakítására.
Lehet, hogy a tulajdonos nem kötelező?
Az egyetlen változás itt az, hogy a nem birtokolt változó lehet Opcionális , ami korábban illegális volt. Ez a változtatás egy bosszantó éles esetet kezel, ez minden. Igen, ez az.
Mi a gyenge erős a Swiftben?
A Swiftben az erős hivatkozások az alapértelmezettek, így a hivatkozás gyenge kulcsszót használhatja. Az erős hivatkozásokkal ellentétben a gyenge hivatkozás nem befolyásolja a példány visszatartási számát . Nem ragaszkodik a tárgyhoz. ... Röviden, egy erős referenciaciklus vagy „megtartási ciklus” 2 egymáshoz tapadt példány.
Mi a gyenge a C célkitűzésben?
A gyenge olyan hivatkozást ad meg, amely nem tartja életben a hivatkozott objektumot . A gyenge hivatkozás nullára van állítva, ha nincsenek erős hivatkozások az objektumra.
Mi az a nem ismert én a Swiftben?
A legáltalánosabb hely, ahol nem birtokolt változókat láthat, az a lezárások, amelyek deklarálják a [nem ismert ént] – ez azt jelenti, hogy " a záráson belül én szeretnék hivatkozni, de nem akarom birtokolni ". Miért nem birtokol inkább, mint gyenge? Mindkettő működne, de valljuk be: ha az én nulla a zárásban, akkor valami elromlott!
Az IBOutleteknek gyengének vagy erősnek kell lenniük?
Az Apple hivatalos válasza az, hogy az IBOutleteknek erősnek kell lenniük . Az egyetlen eset, amikor egy IBOutletnek gyengenek kell lennie, az a megtartási ciklus elkerülése. Az erős referenciaciklus memóriaszivárgásokat és az alkalmazások összeomlását okozhatja.
Mi az a lusta VAR?
A lazy var olyan tulajdonság, amelynek kezdeti értéke csak az első meghívásakor kerül kiszámításra . Ez egy olyan tulajdonságcsalád része, amelyben állandó tulajdonságokkal, számított tulajdonságokkal és változtatható tulajdonságokkal rendelkezünk.
Mindig gyenge ént kell használnom a lezárásokban?
A [gyenge én] használata csak olyan helyzetekben szükséges , amikor az én erős rögzítése visszatartási ciklust okozna, például amikor az ént egy olyan záráson belül ragadják meg, amelyet végül ugyanaz az objektum is megtart.
Mi a gyenge én a bezárásban?
A kiszabaduló zárak [gyenge én]-t igényelnek, ha valahol eltárolják őket, vagy átkerülnek egy másik záróelemhez, és a bennük lévő tárgy hivatkozást tart a lezárásra. Guar let self = self bizonyos esetekben késleltetett felosztáshoz vezethet, ami a szándékaitól függően jó vagy rossz lehet.
Miért hozol létre általában gyenge referenciát, amikor egy blokkban önmagát használod?
De ha a lapozógép a ViewController tulajdona, és ezeket a blokkokat nem hívják meg a ViewController kiadása után, akkor a __gyenge hivatkozás használata lenne a biztonságos lépés (mivel saját tulajdonában van a blokkokat birtokló dolog, és így valószínűleg még mindig amikor a blokkok hívják annak ellenére, hogy nem tartják meg).
Mi az erős tulajdonság az Objective-C-ben?
erős (alapértelmezett) Az erős csak azt jelenti , hogy van hivatkozás egy objektumra, és életben tartja az objektumot . Mindaddig, amíg megtartja az objektumra való hivatkozást az adott tulajdonságban, az objektum nem lesz felszabadítva, és nem kerül vissza a memóriába.
Mi az az @IBOutlet?
Az IBOutlet egy változódeklarációhoz hozzáadott kulcsszó . Ez egy mutató. Ez semmilyen módon nem befolyásolja a nyilatkozatot. Amikor azonban az Interface Builder látja, lehetővé teszi a programozó számára, hogy beállítsa ezt a változót az Interface Builder „kimeneti” mechanizmusán keresztül.
Mi a nem atomi és mi az erős az Objective-C-ben?
A nem atomi tulajdonság azt jelenti, hogy a @synthesize d metódusok nem lesznek szálbiztosan generálva – de ez sokkal gyorsabb, mint az atomi tulajdonság, mivel az extra ellenőrzések megszűnnek. A strong az ARC-vel együtt használatos, és alapvetően segít Önnek, mivel nem kell aggódnia egy objektum visszatartási száma miatt.
Mi a különbség a gyenge és az erős között a Swiftben?
Az erős hivatkozás azt jelenti, hogy Ön szeretné „tulajdonolni” azt az objektumot, amelyre hivatkozik ezzel a tulajdonsággal/változóval. Ezzel szemben a gyenge hivatkozással azt jelzi, hogy nem akarja irányítani az objektum élettartamát.
Mit jelent a bezárás a Swiftben?
A lezárások önálló funkcióblokkok, amelyek átadhatók és felhasználhatók a kódban . A Swift zárásai hasonlóak a C és az Objective-C blokkjaihoz, valamint más programozási nyelvek lambdasáihoz. ... A beágyazott függvények olyan lezárások, amelyeknek van nevük, és értékeket rögzíthetnek a befoglaló függvényükből.
Mi a különbség az erős és a gyenge tulajdonságok között?
A fő különbség az, hogy a gyenge tulajdonságok nullává válnak, amikor a hozzájuk rendelt objektum felszabadul . Az Erős azt jelenti, hogy amíg ez a tulajdonság egy objektumra mutat, az objektum nem kerül automatikusan felszabadításra.
Miért gyengék a küldöttek a Swiftben?
Miért legyen a delegált gyenge var? Mielőtt elkezdené, nagyon ajánlom, hogy nézze meg az ARC történetet . Megtervezzük a protokollt és az osztályokat, hogy megmutassuk a megtartási ciklust a küldötteken. A lazy kulcsszó használatával nem inicializáljuk a delegate-ot, ami azt jelenti, hogy jelenleg nincs memóriaszivárgás.
Mi az erős referenciaciklus?
Erős referenciaciklus akkor történik, ha 2 példány erős hivatkozást tart egymásra . Véletlenül is létrehozhat ilyen ciklikus hivatkozást, például amikor kétirányú „hivatkozásokkal” dolgozik az objektumok között, vagy lezárásoknál.
Mi az a visszatartási ciklus?
Az egyik példa a megőrzési ciklusok, amelyek akkor fordulnak elő, amikor két objektum hivatkozik egymásra, és lehetetlenné teszi, hogy egyikük valaha is feloldódjon – mivel mindkét megtartási szám mindig egy vagy nagyobb lesz.
Hogyan lehet egy változót erőssé tenni a Swiftben?
A var alapértelmezés szerint erős . A gyenge kulcsszót hozzáadhatja a var elé, hogy gyengítsék. A tulajdonságok alapértelmezés szerint erősek, de ha gyenge tulajdonságot szeretne, akkor: gyenge var bérlő: Személy?