Сбой из-за проблемы с памятью при многократном нажатии UIViewController в iOS.Нет следов аварии - PullRequest
0 голосов
/ 06 июня 2018

У меня есть следующий сценарий.(Все программно реализовано - без раскадровки)

Xcode 9.4, Swift 4.1

  • mainViewController с tableView
  • Когда ячейка выбрана, я нажимаю VC встек с:

let detailVC = DetailViewController()
self.navigationController?.pushViewController(detailVC, animated: true)

  • Подробный ВК имеет подпредставление (GalleyView: UIView)

Я могу нажимать detailVC и возвращаться назад, используя кнопку navigationBar несколько раз, без проблем.

Но ... Когда я добавляю 3 UIImageViews как подпредставления в представление галереи, я могу нажатьdetailVC, но каждый раз, когда время загрузки увеличивается, и через 4 раза (и около 2 секунд) происходит сбой (полностью детерминированный)

Единственное сообщение - следующее, и в Xcode отсутствует трассировка стека сбоев.

Message from debugger: Terminated due to memory issue

Отслеживание использования памяти, оно находится в диапазоне от 15 МБ до 25 МБ без какого-либо явного увеличения между операциями push / pop.

Мне удалось точно определить проблему в addSubview (imageView) в галерее вида

  • Если я начнуВ строке addSubview он работает, но с добавлением imageViews в представление галереи происходит сбой после 5 операций push.
  • Сбой не происходит в конкретной строке addSubview, но после завершения viewWillAppear(), но прямо перед viewDidAppear() в detailVC.
  • Сбои в устройстве и в симуляторе

Я убедился, что я не нажимаю VC рекурсивно или не добавляю представленияили imageViews несколько раз.Я создаю экземпляры объектов каждый раз.Gallery.subViews.count всегда равен 3.

Есть идеи о том, что здесь может происходить? ... e

...