Sobes.tech
Junior — Middle

Dizi kullanırken nesneler nasıl organize edilir ve bellekte yerleştirilir?

sobes.tech yapay zeka

AI'dan gelen yanıt

iOS'ta nesneler genellikle yığında (heap) depolanır ve diziler, nesnelere işaretçi olabilecek yapılar içerir.

Normal bir nesne dizisinden (örneğin, Swift'te NSArray veya Array) bahsediyorsak:

  • Dizi, nesnelere işaret eden referanslar (işaretçiler) tutar ve nesneler kendileri yığında bulunur.
  • Dizi, nesnelere işaret eden işaretçilerin depolandığı ardışık bir bellek bloğudur, nesneler değil.

Örneğin, Swift'te:

let obj1 = NSObject()
let obj2 = NSObject()
let array = [obj1, obj2]

Burada, array obj1 ve obj2 nesnelerine iki işaretçi içerir ve bunlar yığında bulunur.

Primitif türler (örneğin, Int) kullanılırsa, değerler doğrudan dizinin belleğinde saklanır, çünkü bunlar değer tipleridir.

Bu nedenle, iOS'ta nesne dizisi kullanırken:

  • Dizi, bellekte ardışık olarak düzenlenmiş işaretçiler dizisidir.
  • Nesneler, dizinin elemanlarının işaret ettiği, yığında bulunan ayrı bellek bloklarıdır.

Performans ve bellek yönetimiyle çalışırken bunu dikkate almak önemlidir.