Sobes.tech
Junior — Middle

Бағдарламалауда объектілермен жұмыс істеу үшін қолданылатын негізгі сілтемелер түрлерін тізе аласыз ба?

sobes.tech AI

AI-дан жауап

Бағдарламалауда, әсіресе iOS және Swift-те, объектілермен жұмыс істеу үшін негізгі сілтемелер түрлері мыналар:

  • Strong (күшті сілтеме) — объектіні жадыда ұстайды, сілтеме болғанша. Объект күшті сілтеме болғанша жойылмайды.
  • Weak (әлсіз сілтеме) — объектіні жадыда ұстамайды. Егер объект жойылса, әлсіз сілтеме автоматты түрде nil-ге айналады. Бұл циклдік сілтемелерді болдырмау үшін пайдаланылады.
  • Unowned (меншіксіз сілтеме) — weak-ке ұқсас, бірақ опционал емес және nil-ге айналмайды. Бұл сілтеме қолдану кезінде міндетті түрде бар деп кепілдік берілген кезде пайдаланылады.

Swift-те мысал:

class Person {
    var name: String
    weak var apartment: Apartment? // әлсіз сілтеме
    init(name: String) {
        self.name = name
    }
}

class Apartment {
    let unit: String
    unowned let tenant: Person // меншіксіз сілтеме
    init(unit: String, tenant: Person) {
        self.unit = unit
        self.tenant = tenant
    }
}