Sobes.tech
Junior — Middle

Milyen következményekkel járhat, ha a loadView módszerben a view tulajdonsághoz férünk hozzá az ellenőrzőben?

sobes.tech MI

Válasz az MI-től

Az iOS vezérlő loadView metódusában létrejön és hozzárendelésre kerül a fő nézet (view). Ha a loadView belsejében hozzáférsz a view tulajdonsághoz, az rekurzív híváshoz vezet, mivel a view még nincs inicializálva, és a rendszer megpróbálja betölteni, újra meghívva a loadView-t. Ez végtelen rekurziót eredményez, és ennek következtében az alkalmazás összeomlik verem túlcsordulási hibával.

Ezért a loadView-ban nem szabad hozzáférni a self.view-hoz. Ehelyett közvetlenül létre kell hozni és hozzárendelni egy új nézetet, például:

override func loadView() {
    let customView = UIView()
    customView.backgroundColor = .white
    self.view = customView
}