Аннотации MKMApView видоизменяются во время итерации - PullRequest
0 голосов
/ 31 октября 2018

проблема заключается в следующем:

У нас есть MKMapView с аннотациями в нем. В вызове делегата mapview(_:regionDidChangeAnimated:) мы собираемся получить все видимые аннотации в прямоугольнике текущей видимой карты:

return self.annotations(in: mapRect).compactMap {
    return $0 as? MKAnnotation
}

Теперь этот код вылетает с ошибкой:

Тема 1: Неустранимая ошибка: в наборе найден повторяющийся элемент. Элементы могут быть видоизменены после вставки

Итак, я предполагаю, что представление карты использует NSMutableSet. Когда регион изменил вид карты, он сам по какой-то причине начал вставлять и удалять аннотации в этом наборе (я полагаю, что в фоновом потоке проблема не постоянна, но возникает чаще, когда мы увеличиваем количество аннотаций).

enter image description here

Кто-нибудь уже сталкивался с этой проблемой раньше? А у кого-нибудь есть идеи, как решить эту проблему?

Просто чтобы прояснить: этот код запускается в основном потоке.

Спасибо за ваше время ^^

Дополнительная информация

Эта ошибка начала возникать с тех пор, как мы начали использовать iOS 12 SDK, во всех наших выпусках с iOS11.x SDK такой проблемы нет.

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