Сбой приложения iOS из-за оптимизации в версии Xcode выше 11.3 с использованием локальных переменных var

Я создаю сборку с оптимизацией, используя XCode 11.6.

Настройки оптимизации сборки

Apple CLang Code Generation
Optimization Level: Fastest, Smallest [-Os]
Swift Compiler - Code Generation
Optimization Level: Optimize for speed [-O]

Я получаю сбой для приведенного ниже фрагмента кода. Просто хотел знать, почему я получаю сбой только для оптимизированной сборки, созданной с версией XCode выше 11.3.

    //it crashes only when the object is declared as var not let
    var view : UIView = UIView.init(frame: CGRect.zero) 

    //lblContainer is a weak variable defined in class
    self.lblContainer = view; 
    
    //it always crashes here
    self.lblContainer.isUserInteractionEnabled = false

    self.lblContainer.translatesAutoresizingMaskIntoConstraints = false;
    self.addSubview(self.lblContainer)
    self.lblContainer.backgroundColor = UIColor.clear;
    self.lblContainer.centerXAnchor.constraint(equalTo: self.centerXAnchor).isActive = true;
    self.lblContainer.centerYAnchor.constraint(equalTo: self.centerYAnchor).isActive = true;
    self.lblContainer.leftAnchor.constraint(greaterThanOrEqualTo: self.leftAnchor, constant: 8.0).isActive = true
    self.lblContainer.rightAnchor.constraint(lessThanOrEqualTo: self.rightAnchor, constant: -8.0).isActive = true

Информация о сбое

Вы можете найти пример проекта здесь.


person Kirty07    schedule 19.11.2020    source источник


Ответы (1)


1. Попробуйте выяснить тип self.lblContainer.isUserInteractionEnabled (я уверен, что это логическое значение), выполнив print(type(of:self.lblContainer.isUserInteractionEnabled))

2. Посмотрите на этот другой пост о переполнении стека, здесь, чтобы найти появившуюся ошибку

person Saad elMoustarhfir    schedule 19.11.2020