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

17 kapcsolódó kérdés található

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?