我所在区域的地图上有30 MKPinAnnotations
。我还拥有相对于这30个位置中的每一个都包含30个位置的一系列数组。我想要的体验是能够敲击这些引脚中的一个,而其他30个相对引脚围绕它出现。当我使用完全的Internet连接进行所有操作时,结果就是:
我正在使用Realm在后端缓存所有内容,所以我知道我有可用的数据。点击蓝色图钉会弹出一个标注视图,使我可以“签到”该位置,该位置应召唤其他30个相对位置。这是让我不知所措的代码:
if let annotations = currentRestaurantAnnotations {
mapView.removeAnnotations(annotations)
}
currentRestaurantAnnotations = nil
currentRestaurants = nil
var restaurantPins = [RestaurantAnnotation]()
for restaurant in restaurants.filter({ $0.venueID == currentFocusVenue?.id }) {
let pin = RestaurantAnnotation(coordinate: CLLocationCoordinate2D(latitude: restaurant.latitude, longitude: restaurant.longitude), title: restaurant.name)
restaurantPins.append(pin)
}
currentRestaurantAnnotations = restaurantPins
mapView.showAnnotations(restaurantPins, animated: true)
再次,当我具有连接性时,对此进行调试,所有注释均使其到达最后一行。当我将设备置于飞行模式并点击蓝色图钉及其调用按钮时,该方法再次被触发,所有内容均按应有的方式在代码中运行,但是在showAnnotations()
运行之后,地图视图显示为无注释。
对于上下文,如果我随后使设备退出飞行模式,则该应用程序通过触发来自这30个相对位置的云中的更新来执行应做的事情。再次触发显示注释的功能,由于我的设备处于飞行模式,注释全部显示。
Tl; dr:当我的设备处于飞行模式时,如何使注释显示在MapKit上?