Sobes.tech
Junior — Middle

Ma'lumotlar tuzilmasini saqlash uchun dinamik xotira ajratishdan foydalanish misolini keltira olasizmi?

sobes.tech AI

AIdan javob

iOS-da dinamik xotira ajratish uchun odatda avtomatik xotira boshqaradigan sinflar, masalan, NSMutableArray yoki Swift Array, ishlatiladi. Ammo, agar pastroq darajada bo‘lsak, malloc va free funksiyalaridan foydalanib, ma’lumotlar tuzilmasi uchun xotira ajratish mumkin.

Swiftda UnsafeMutablePointer yordamida dinamik tuzilma massivining misoli:

struct Point {
    var x: Int
    var y: Int
}

let count = 5
let pointer = UnsafeMutablePointer<Point>.allocate(capacity: count)

for i in 0..<count {
    pointer.advanced(by: i).initialize(to: Point(x: i, y: i * 2))
}

// Ma’lumotlardan foydalanish
for i in 0..<count {
    let point = pointer.advanced(by: i).pointee
    print("Point \(i): (\(point.x), \(point.y))")
}

// Xotirani bo'shatish
pointer.deinitialize(count: count)
pointer.deallocate()

Bu yondashuv xotirani qo‘lda boshqarishga imkon beradi, bu past darajadagi API bilan ishlashda yoki unumdorlikni optimallashtirishda foydalidir.