Junior — Middle
¿En qué lugar se colocará la estructura si dentro de ella hay un campo que es una instancia de una clase?
sobes.tech AI
Respuesta de la IA
En iOS, si una estructura (struct) contiene un campo que es una instancia de una clase (class), la propia estructura se coloca en la pila, mientras que el campo de clase se coloca en el montón.
Esto se debe a que las estructuras son tipos de valor, que se almacenan directamente donde se declaran (generalmente en la pila), mientras que las clases son tipos de referencia, cuyos objetos se colocan en el montón, y en la estructura solo se almacena una referencia a ese objeto.
Ejemplo:
class MyClass {
var value: Int
init(value: Int) {
self.value = value
}
}
struct MyStruct {
var obj: MyClass
}
var s = MyStruct(obj: MyClass(value: 10))
Aquí, s es una estructura colocada en la pila, y el objeto MyClass(value: 10) está en el montón, y en s.obj se almacena una referencia a ese objeto.