Sobes.tech
Middle

Көрүнүштөрдү кандай сактайт, алар шилтемелердин түрү болсо?

sobes.tech AI

AIден жооп

iOS'te (UIView we onuň subsklasslary) synklaslar bolup, olar referent görnüşlerdir. Olara salgylanmalary şu usullaryň kömegi bilen saklanýar:

  1. Kömek salgylanmalar (Strong References):

    • Esasan, eger siz UIView üçin aýratynlyk deklarasiýa edeniňizde weak ýa-da unowned görkeziji ýok bolsa, bu güýçli salgylanma döredýär.
    • Güçli salgylanma obýektiň salgylanma sanawyny artdyrýar. Obýekt, iň az bir güýçli salgylanma bolmadykça, ýadyndan aýrylmaz.
    • Bu, görünüşleri saklamagyň standart usulydyr, olary ýadynda saklamaly we elýeterli bolmaly bolsa.
    //Güýçli salgylanma
    var myView: UIView = UIView()
    
  2. Güçsüz salgylanmalar (Weak References):

    • weak açar sözi bilen deklarasiýa edilýär.
    • Güçsüz salgylanma obýektiň salgylanma sanawyny ýokarlandyrmaýar.
    • Güçsüz salgylanmalar obýektiň ýadyndan aýrylmagyna päsgel bermeýär, eger başga güýçli salgylanma ýok bolsa.
    • Güýçli salgylanmalaryň aýlawlaryny öňlemek üçin ulanylýar, umumy ýagdaý — ene-çaga gatnaşyklary, enäniň güýçli salgylanmasy çaga üstünde, çaga käwagt ene üstünde salgylanma saklaýar. Bu ýagdaýda, ene-çaga arasyndaky yzyna salgylanma güýçsüz bolmaly.
    • Güçsüz salgylanmalar optional bolmaly (Optional), sebäbi obýekt aýrylyp biler we nil bolar.
    weak var parentView: UIView?
    
  3. Unowned salgylanmalar (Unowned References):

    • unowned açar sözi bilen deklarasiýa edilýär.
    • Güçsüz salgylanmalar ýaly, salgylanma sanawyny ýokarlandyrmaýar.
    • Fark: weak-den tapawutlylykda, unowned salgylanmalar optional däl. Olaryň çäkli, obýekt ýaşaýşynyň iň azyndan salgylanma saklaýançä dowam etmelidir. Eger, obýektiň boşadylmagyndan soň, unowned salgylanma arkaly erişilse, programma ýykylýar.
    • Bu, salgylanma obýektiň ýaşaýyş möhletiniň, onuň salgylanmasyna garamazdan, dowam etmegine ynam edilende ulanylýar. UIKit kontekstinde, bu weak-den az ulanylýar.
    //Düýpli, ýöne mümkin
    unowned var childView: UIView
    
  4. Massivler we kolleksiýalar:

    • Görünüşlere salgylanmalary massivlerde (Array), sözlüklərdə (Dictionary) ýa-da ýygnaklarda (Set) saklamak hem-de, bu usul bilen, elementlere güýçli salgylanma döredilýär.
    var subviews: [UIView] = []
    

Salgylanma görnüşini saýlamak — güýçli, güýçsüz ýa-da unowned — belli bir ulanyş senarisi we obýektleriň ýaşaýyş möhletini dolandyrmak bilen baglanyşykly, ýadyň galmagynyň öňüni almak üçin. SwiftUI-da, görünüşleriň ýaşaýyş möhletini dolandyrmak düşünjeleri biraz tapawutly, ýöne UIKit kontekstinde, bu mehanizmler esasy salgylanma saklamanyň usullary bolup durýar.