Junior — Middle
Масалан аст, ки намунаи истифодаи тақсимоти динамикии хотира барои нигоҳдории сохтори маълумотро диҳед?
sobes.tech AI
Ҷавоб аз AI
Дар iOS барои тақсимоти динамикии хотира одатан синфҳое истифода мешаванд, ки хотираро автоматӣ идора мекунанд, масалан NSMutableArray ё Swift Array. Аммо агар дар сатҳи поёнтар сухан гӯем, метавонем функсияҳои malloc ва free-ро барои тақсимоти хотира барои сохтори маълумот истифода барем.
Масалан дар Swift бо истифода аз UnsafeMutablePointer барои массиви динамикии сохторҳо:
struct Point {
var x: Int
var y: Int
}
ҳисоб = 5
пойнтер = UnsafeMutablePointer<Point>.allocate(capacity: ҳисоб)
барои i дар 0..<ҳисоб {
пойнтер.advanced(by: i).initialize(to: Point(x: i, y: i * 2))
}
// Истифодаи маълумот
барои i дар 0..<ҳисоб {
нуқта = пойнтер.advanced(by: i).pointee
чоп кунед("Нуқта \(i): (\(нуқта.x), \(нуқта.y))")
}
// Озод кардани хотира
пойнтер.deinitialize(count: ҳисоб)
pойнтер.deallocate()
Ин рӯнамоӣ имкон медиҳад, ки ба таври дастӣ хотирасозӣ кунед, ки дар кор бо API-ҳои сатҳи поён ё барои оптимизатсияи иҷроиш кӯмак мекунад.