Junior — Middle
Къде ще бъде разположена структурата, ако вътре има поле, което е екземпляр на клас?
sobes.tech AI
Отговор от AI
В iOS, ако структура (struct) съдържа поле, което е екземпляр на клас (class), самата структура се разполага в стека, а полето-клас — в купчината.
Това е свързано с факта, че структурите са типове стойности, които се съхраняват директно там, където са обявени (обикновено в стека), а класовете — референтни типове, чиито обекти се разполагат в купчината, а в структурата се съхранява само препратка към този обект.
Пример:
class MyClass {
var value: Int
init(value: Int) {
self.value = value
}
}
struct MyStruct {
var obj: MyClass
}
var s = MyStruct(obj: MyClass(value: 10))
Тук s е структура, разположена в стека, а обектът MyClass(value: 10) — в купчината, а в s.obj се съхранява препратка към този обект.