Я разработал небольшое приложение, используя MKMapView
, где MKAnnotations
постоянно добавляются на карту. Работает хорошо, пока пользователь не касается карты.
Если пользователь пытается взаимодействовать с картой, я заметил, что новые MKAnnotationViews
не добавляются на карту. Фактически я обнаружил, что пока пользователь продолжает взаимодействовать с картой, mapView: didAddAnnotationViews:
не вызывается. Как только палец пользователя покидает экран, вызывается mapView: didAddAnnotationViews:
, передавая в аргументе все MKAnnotationViews
, которые должны были быть добавлены.
Я пытался принудительно вызвать mapView: didAddAnnotationViews
, но мне нужно передать MKAnnotationViews
в качестве аргументов (поэтому я не могу использовать что-либо, основанное на периодических вызовах), и когда я пытаюсь вызвать его в конце mapView: viewForAnnotation:
, это не работает, так как вид еще не был добавлен в mapView. Также плохой идеей является попытка добавить аннотацию через другой поток, так как это приведет к исключению Collection was mutated while being enumerated
(возможно, из изменяемого массива, хранящего представления аннотации).
Есть ли способ это исправить?