проблема заключается в следующем:
У нас есть MKMapView с аннотациями в нем. В вызове делегата mapview(_:regionDidChangeAnimated:)
мы собираемся получить все видимые аннотации в прямоугольнике текущей видимой карты:
return self.annotations(in: mapRect).compactMap {
return $0 as? MKAnnotation
}
Теперь этот код вылетает с ошибкой:
Тема 1: Неустранимая ошибка: в наборе найден повторяющийся элемент. Элементы могут быть видоизменены после вставки
Итак, я предполагаю, что представление карты использует NSMutableSet. Когда регион изменил вид карты, он сам по какой-то причине начал вставлять и удалять аннотации в этом наборе (я полагаю, что в фоновом потоке проблема не постоянна, но возникает чаще, когда мы увеличиваем количество аннотаций).
Кто-нибудь уже сталкивался с этой проблемой раньше? А у кого-нибудь есть идеи, как решить эту проблему?
Просто чтобы прояснить: этот код запускается в основном потоке.
Спасибо за ваше время ^^
Дополнительная информация
Эта ошибка начала возникать с тех пор, как мы начали использовать iOS 12 SDK, во всех наших выпусках с iOS11.x SDK такой проблемы нет.