Junior — Middle
Hansı səbəblər Unowned istifadə etməyi bəzi vəziyyətlərdə daha az üstün edir?
sobes.tech Süni İntellekt
AI-dan cavab
iOS-da (Swift) unowned istifadə etmək, unowned ilə istinad olunan obyektin, istinad istifadə edilməzdən əvvəl sərbəst buraxıla biləcəyi (deallocated) riskində olan hallarda daha az tövsiyə olunur. weak-ə nisbətən, unowned opsional deyil və obyekt sərbəst buraxıldıqda nil olmur, buna görə belə bir istinada sərbəst buraxıldıqdan sonra daxil olmaq tətbiqin çökməsinə (runtime error) səbəb olacaq.
unowned-dən qaçınma səbəbləri:
- Obyektin həyat dövrü hər zaman etibarlı olacağını təmin etmirsə.
- Çətin qarşılıqlı istinadlar zamanı, obyektlərin sərbəst buraxılma sırası aydın deyilsə.
Belə hallarda, avtomatik olaraq nil olan weak istifadə etmək daha yaxşıdır və qəza hallarını qarşısını alır.
Nümunə:
class A {
unowned var b: B
init(b: B) { self.b = b }
}
class B {
var a: A?
}
Əgər B obyekti A-dan əvvəl sərbəst buraxılsa, A-də b-yə daxil olmaq səhvə səbəb olacaq.