Junior — Middle
Na kom mestu će biti smeštena struktura ako unutar nje postoji polje koje je primer klase?
sobes.tech АИ
Одговор од АИ
U iOS-u, ako struktura (struct) sadrži polje koje je instanca klase (class), sama struktura se smešta na stek, dok se polje klase nalazi na hrpi.
To je zato što su strukture tipovi vrednosti, koji se direktno čuvaju tamo gde su deklarisani (obično na steku), dok su klase tipovi referenci, čiji objekti se smeštaju na hrpu, a u strukturi se čuva samo referenca na taj objekat.
Primer:
class MyClass {
var value: Int
init(value: Int) {
self.value = value
}
}
struct MyStruct {
var obj: MyClass
}
var s = MyStruct(obj: MyClass(value: 10))
Ovde je s struktura smeštena na steku, a objekat MyClass(value: 10) na hrpi, i u s.obj se čuva referenca na taj objekat.