How do I remove all annotations from MKMapView except the user location annotation?

Update: When I tried with the iOS 9 SDK the user annotation is no longer removed. You can simply use mapView.removeAnnotations(mapView.annotations) Historical answer (for apps that run on iOS before iOS 9): Try this: NSMutableArray * annotationsToRemove = [ mapView.annotations mutableCopy ] ; [ annotationsToRemove removeObject:mapView.userLocation ] ; [ mapView removeAnnotations:annotationsToRemove ] ; EDIT: Swift … Read more

NSLocationWhenInUseUsageDescription warning, but I have already added it

Adding both NSLocationAlwaysAndWhenInUseUsageDescription and NSLocationWhenInUseUsageDescription keys in plist solved my problem. <key>NSLocationAlwaysUsageDescription</key> <string>Your location is required for xyz benefits for you</string> <key>NSLocationWhenInUseUsageDescription</key> <string>Your location is required for xyz benefits for you</string>