Sobes.tech
Middle

Чӣ гуна оғозёбии синфҳо бо тақсимоти хотира алоқаманд аст?

sobes.tech AI

Ҷавоб аз AI

Инициализацияи синф дар iOS бо тақсим кардани хотира ба тариқи зерин вобаста аст:

  1. Тақсим кардани хотира: Ҳангоми эҷоди намунаи синф (объект), муҳити иҷроӣ блоки хотирасо барои нигоҳдории хусусиятҳо ва дигар маълумоти он объект тақсим мекунад. Андозаи хотирае, ки тақсим мешавад, ба сохтори синф, аз ҷумла намудҳо ва шумораи хусусиятҳо, вобаста аст.
  2. Инициализаторҳо: Инициализаторҳои синф (init) масъуланд барои муайян кардани арзишҳои ибтидоии хусусиятҳои объекти нав пас аз тақсим кардани хотира. Ин раванд кафолат медиҳад, ки объект дар ҳолати дуруст барои истифода қарор дорад.
  3. Манобеъ: Дар Swift, объектҳо намудҳои манобеъ мебошанд. Вақте ки шумо намунаи синфро месозед, дар асл шумо манобеъ ба ҷой дар хотира мегиред, ки дар он объект нигоҳ дошта мешавад. Ин манобеъ барои дастрасӣ ба хусусиятҳо ва усулҳои объект истифода мешавад.
  4. ARC (Ҳисоби автоматии манобеъ): ARC шумораи манобеъҳои қавӣ ба намунаи синфро автоматӣ пайгирӣ мекунад. Вақте ки шумораи манобеъҳои қавӣ ба объект ба сифр мерасад, ARC хотираи тақсимшударо барои он озод мекунад. Инициализатсия шумораи манобеъҳоро зиёд мекунад.
  5. Deinit: Метод deinit дар синф (муҳосиб) бевосита пеш аз озод кардани хотира, ки ARC барои объект тақсим кардааст, даъват мешавад. Он барои иҷрои ҳар гуна амалҳои тозакунӣ, ба монанди озод кардани захираҳо, истифода мешавад.
class MyClass {
    let myProperty: Int // Хусусият, ки ба хотира ниёз дорад
    
    init(value: Int) {
        self.myProperty = value // Инициализатсияи хусусият пас аз тақсим кардани хотира
        print("Модели MyClass эҷод шуд (хотира тақсим ва инициализат шуд).")
    }
    
    deinit {
        print("Модели MyClass нест карда шуд (хотира озод шуд).")
    }
}

// Эҷоди намунаи синф - тақсим кардани хотира ва даъвати init
var instance: MyClass? = MyClass(value: 10)

// Озод кардани манобеъ - ARC оғоз ба пайгирии озод кардани хотира мекунад
instance = nil // Вақте ки манобеъ ба instance ба сифр баробар мешавад, ARC метавонад хотирасо озод кунад ва deinit-ро даъват кунад