Junior — Middle
Чӣ гуна метавон дар идораи хотираҳо истинодҳои даврӣро бартараф кард, то аз рехтани хотираҳо ҷилавгирӣ шавад?
sobes.tech AI
Ҷавоб аз AI
Давриивии пайвандҳо вақте рух медиҳанд, ки ду ё бештар аз як объект ба ҳамдигар ишора мекунанд, ки ин ба озодкунии автоматии хотира монеъ мешавад, махсусан дар истифодаи ҳисобкунии ишораҳо.
Дар iOS (Objective-C/Swift), барои пешгирии шикастани хотира бо сабаби пайвандҳои даврӣ истифода мешаванд:
- Пайвандҳои суст (
weak) — ҳисобкунии ишораҳоро зиёд намекунанд, автоматӣ ба nil тағйир меёбанд вақте ки объект хориҷ мешавад. - Пайвандҳои беҳуқуқ (
unowned) — ҳисобкунии ишораҳоро зиёд намекунанд, аммо ба nil тағйир намеёбанд, вақте ки объект боварӣ дорад, ки вуҷуд дорад.
Масалан, дар Swift:
class A {
var b: B?
}
class B {
weak var a: A? // пайванди суст барои пешгирии давр
}
Истифодаи weak ё unowned даврро мебурд, ки ба ARC имкон медиҳад, ки объектҳоро дуруст озод кунад ва аз шикастани хотира пешгирӣ кунад.