Проблема инициализации YMKUserLocationLayer()
При выполнении кода:
let userLocationLayer = mapKit.createUserLocationLayer(with: mapView.mapWindow)
userLocationLayer.setVisibleWithOn(true)
userLocationLayer.isHeadingEnabled = true
userLocationLayer.setObjectListenerWith(self)
Появляется следующая ошибка:
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'layer with ID _location already exists'.
Хотя, создание слоя ранее не выполнялось.
Как можно обойти эту проблему и подписаться к YMKUserLocationObjectListener, для отображения местоположения пользователя?
Пока, получаю координаты через LocationManager, но не хочется делать костыли для отображения его на карте. И тогда надо решить проблему отображения перемещения пользователя на карте, ведь точка будет статичной...
Использую: - XCode 11.4.1; - YandexMapKit 3.5.0; - iOS 13.4.1.
Ответы (2 шт):
Проблема была решена посредством просмотра логов. Выяснилось, что данный код вызывался дважды.
Расширенны ответ: Данная проблема связана с тем что у yandex map kit все объекты имеют ссылочный тип и чтоб добраться до них , нам нужно сохранять ссылку на объект. Данная ошибка получается за счет создания повторной точки юзера. Я решил данную проблему путем проверки если ли ссылка уже или нет