Странная ситуация Сбои в Mapview в раскадровке, когда добавляется дочерний контроллер или присутствует (пример кода добавлен) - PullRequest
0 голосов
/ 17 декабря 2018

У меня есть View Controller в раскадровке только с просмотром карты.

class MapVC: UIViewController {
    class func viewController () -> MapVC {
        let storyboard = UIStoryboard(name: "Dashboard", bundle: nil)
        return storyboard.instantiateViewController(withIdentifier: "MapVC") as! MapVC
    }
    override func viewDidLoad() {
        super.viewDidLoad()

    }
}

У меня есть простой экран входа в систему

При действии кнопки входа в систему я называю этот метод

 private func addChildVC (_ vc:UIViewController) {
        self.removeAllChild()
        self.addChild(vc)
        vc.view.frame = self.view.bounds
        self.view.addSubview(vc.view)
        vc.didMove(toParent: self)
        self.currentCenterViewController = vc

  }

при

MapVC.viewController()

Приложение падает при включении

vc.view.frame = self.view.bounds

Странно, если я отлаживаю как подключенный отладчик, и когда я нажимаю на приложение входа в систему, не происходит сбой, но когда отладчик не подключен при запуске, а затем я запускаю приложение в симуляторе, затем присоединяю процесс и когда я нажимаю кнопку входаСбои приложения

Нынешний контроллер представления также не работает сбои приложения

Если я удаляю Mapview из раскадровки, приложение работает нормально в обоих случаях

КогдаЯ проверяю vc.isViewLoaded возвращает false

пробовал loadViewIfRequired () Очистить производные данные, Очистить проект перезапустить xcode.Убедитесь, что я добавил правильные идентификаторы

enter image description here

Я не могу понять причину Пожалуйста, помогите

РЕДАКТИРОВАТЬ

Пример приложения

https://drive.google.com/open?id=1-otaZhhhDEH4p29CgQP7xZSX9tizceq8

Шаги для воспроизведения

1) Запустите в любом симуляторе ios 12
2) Нажмите «Стоп» изxcode
3) Запустите приложение из симулятора
4) Нажмите кнопку

EDIT2

выпуск видео https://drive.google.com/file/d/1z9C3Re_oVYkRncnE22xRoef2Kv2WyzId/view

Файлошибка https://bugreport.apple.com/web/?problemID=46774084

enter image description here

Ответы [ 2 ]

0 голосов
/ 03 января 2019

Я нашел фактическую причину этого.

Это из-за view Framework отладчика

Вот ответ от команды разработчиков Apple

Engineering предоставила следующую информацию по этой проблеме:

Предоставленный пример проекта настроен неправильно.

Приложение использует инфраструктуру MapKit, но не настроено для связи с MapKit.При запуске с использованием отладчика MapKit извлекается, поскольку он связан с каркасом отладчика представления.

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

Обновление примера проекта для связи с MapKit решает проблему с аварийным завершением приложения.

0 голосов
/ 17 декабря 2018

Я не знаю, что на самом деле происходит и почему происходит сбой вашего приложения.Но я нашел решение.Добавьте MapKit.framework в Бинарная ссылка с библиотеками решит вашу проблему.

Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...