Проблема инициализации 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 шт):

Автор решения: EngeniOSDev

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

→ Ссылка
Автор решения: Anastas Smekh

Расширенны ответ: Данная проблема связана с тем что у yandex map kit все объекты имеют ссылочный тип и чтоб добраться до них , нам нужно сохранять ссылку на объект. Данная ошибка получается за счет создания повторной точки юзера. Я решил данную проблему путем проверки если ли ссылка уже или нет

→ Ссылка