Sobes.tech
Junior — Middle

Чӣ қадар хотира дар хотираи амалӣ ҷойгир аст, объекте, ки тавассути истинод сохта шудааст?

sobes.tech AI

Ҷавоб аз AI

ใน iOS วัตถุที่สร้างขึ้นโดยอ้างอิง (เช่น ตัวอย่างของคลาสใน Swift หรือ Objective-C) จะใช้พื้นที่ในหน่วยความจำ RAM ซึ่งขึ้นอยู่กับหลายปัจจัย:

  • ขนาดของวัตถุเอง — ผลรวมของขนาดของคุณสมบัติทั้งหมดและโครงสร้างภายในของมัน
  • ค่าใช้จ่ายเพิ่มเติมของระบบการจัดการหน่วยความจำ (เช่น สำหรับ ARC)

เมื่อสร้างวัตถุโดยอ้างอิงในหน่วยความจำ จะมีการจัดสรรบล็อกที่เพียงพอสำหรับเก็บข้อมูลทุกฟิลด์และข้อมูลบริการของมัน ตัวชี้อ้างอิง (pointer) ไปยังวัตถุนี้โดยทั่วไปจะใช้ขนาดคงที่ (เช่น 8 ไบต์ในระบบ 64 บิต)

ตัวอย่าง:

class MyClass {
    var number: Int = 0
    var text: String = ""
}

let obj = MyClass()

ที่นี่ obj เป็นตัวชี้อ้างอิง (pointer) ซึ่งใช้พื้นที่ในหน่วยความจำคงที่ (8 ไบต์ในระบบ 64 บิต) และวัตถุ MyClass เองจะใช้หน่วยความจำเท่าที่จำเป็นสำหรับเก็บ number, text และข้อมูลบริการ

จำนวนหน่วยความจำที่แน่นอนขึ้นอยู่กับฟิลด์เฉพาะของวัตถุและสถาปัตยกรรมของอุปกรณ์ แต่สิ่งสำคัญคือการเข้าใจว่าตัวชี้อ้างอิงและวัตถุเป็นหน่วยงานที่แตกต่างกันโดยมีขนาดต่างกันในหน่วยความจำ.