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
}
}