Junior — Middle
რა შედეგები შეიძლება გამოიწვიოს loadView მეთოდის ფარგლებში view თვისების მიმართ მიმართვისას კონტროლერში?
sobes.tech AI
პასუხი AI-სგან
iOS კონტროლერის loadView მეთოდში მთავარი ხედი (view) იქმნება და მიენიჭება. თუ loadView-ის შიგნით მიმართავთ view თვისებას, ეს გამოიწვევს loadView მეთოდის რეკურსიულ გამოძახებას, რადგან view ჯერ არ არის ინიციალიზებული და სისტემა ცდილობს მისი დატვირთვას, კვლავ გამოიძახებს loadView-ს. ეს გამოიწვევს უსასრულო რეკურსიას და შედეგად აპლიკაცია დაიშლება სტეკის გადმოწევის შეცდომით.
ამიტომ, loadView-ში არ უნდა მიმართოთ self.view-ს. ამის ნაცვლად, პირდაპირ უნდა შექმნათ და მიენიჭოთ ახალი ხედი, მაგალითად:
override func loadView() {
let customView = UIView()
customView.backgroundColor = .white
self.view = customView
}