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.