Sobes.tech
Junior — Middle

iOS-da avtomatik və əl ilə yaddaş işləməsi necə həyata keçirilir və resursların idarə olunması üçün hansı mexanizmlər istifadə olunur?

sobes.tech Süni İntellekt

AI-dan cavab

iOS-da yaddaş idarəsi əsasən iki əsas üsul ilə həyata keçirilir: avtomatik və əl ilə.

  1. Avtomatik yaddaş idarəsi (ARC — Avtomatik Referans Sayımı)

    ARC, Objective-C və Swift obyektləri üçün retain/release çağrılarını avtomatik əlavə edən kompilyatorə daxil edilmiş mexanizmdir. O, obyektə olan istinadların sayını hesablayır və sayıcı sıfıra çatanda yaddaşı azad edir.

    Nümunə:

    class Person {
        var name: String
        init(name: String) {
            self.name = name
        }
    }
    
    var p1: Person? = Person(name: "Иван")
    var p2 = p1 // istinadların sayı artır
    p1 = nil // say azaldılır
    p2 = nil // obyekt azad edilir
    
  2. Əl ilə yaddaş idarəsi

    Köhnə iOS versiyalarında (ARC-dən əvvəl), proqramçı obyektlərin həyat dövrünü idarə etmək üçün retain, releaseautorelease metodlarını əl ilə çağırırdı.

  3. Resursların idarə olunması

    Yaddaşdan başqa, resursların (fayllar, şəbəkə əlaqələri, timerlər) idarə olunması üçün deinit kimi Swift-də nümunələr istifadə olunur və obyekt məhv edilərkən resurslar azad edilir.

    Həmçinin, müvəqqəti obyektləri idarə etmək üçün autoreleasepool kimi quruluşlar geniş istifadə olunur.

Beləliklə, ARC yaddaşla işləməyi əhəmiyyətli dərəcədə sadələşdirir, sızma ehtimalını azaldır və əl ilə idarəetmə nadir hallarda və yalnız xüsusi hallarda istifadə olunur.