Junior — Middle
Bir sınıf örneği olan bir alan içeriyorsa, yapı nerede konumlandırılacaktır?
sobes.tech yapay zeka
AI'dan gelen yanıt
iOS'ta, bir yapı (struct) içinde bir sınıfın (class) örneği olan bir alan varsa, yapının kendisi yığında (stack) yer alır, sınıf alanı ise yığında değil, yığında (heap) yer alır.
Bunun nedeni, yapıların değer tipleri olmasıdır ve bunlar doğrudan tanımlandıkları yerde (genellikle yığında) saklanır, sınıflar ise referans tipleri olup nesneleri yığında saklanır ve yapıda sadece bu nesneye referans bulunur.
Örnek:
class MyClass {
var value: Int
init(value: Int) {
self.value = value
}
}
struct MyStruct {
var obj: MyClass
}
var s = MyStruct(obj: MyClass(value: 10))
Burada, s yığında yer alan bir yapıdır ve MyClass(value: 10) nesnesi yığında yer alır, ve s.obj bu nesneye bir referans tutar.