title: Swift MKMapView Drop a Pin Annotation to Current Location
body: <p>I am looking to be able to ask the app user for his/her current location and a pin to be automatically dropped on that location. Here is my code for grabbing the current location, but I am having trouble understanding how I can drop a pin for the current location. </p>
  
  <pre><code>import UIKit
  import MapKit
  import CoreLocation
  
  
  class MapVC: UIViewController, MKMapViewDelegate, CLLocationManagerDelegate {
  
  
  
  @IBOutlet weak var map: MKMapView!
  
  let locationManager =  CLLocationManager()
  
  override func viewDidLoad() {
      super.viewDidLoad()
  
      // User's location
  
      locationManager.delegate = self
      locationManager.desiredAccuracy = kCLLocationAccuracyBest
      if #available(iOS 8.0, *) {
          locationManager.requestAlwaysAuthorization()
      } else {
          // Fallback on earlier versions
      }
      locationManager.startUpdatingLocation()
  
      // add gesture recognizer
      let longPress = UILongPressGestureRecognizer(target: self, action: #selector(MapVC.mapLongPress(_:))) // colon needs to pass through info
      longPress.minimumPressDuration = 1.5 // in seconds
      //add gesture recognition
      map.addGestureRecognizer(longPress)
  }
  
  // func called when gesture recognizer detects a long press
  
  func mapLongPress(_ recognizer: UIGestureRecognizer) {
  
      print("A long press has been detected.")
  
      let touchedAt = recognizer.location(in: self.map) // adds the location on the view it was pressed
      let touchedAtCoordinate : CLLocationCoordinate2D = map.convert(touchedAt, toCoordinateFrom: self.map) // will get coordinates
  
      let newPin = MKPointAnnotation()
      newPin.coordinate = touchedAtCoordinate
      map.addAnnotation(newPin)
  
  
  }
  
  func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
  
      let location = locations.last! as CLLocation
  
      let center = CLLocationCoordinate2D(latitude: location.coordinate.latitude, longitude: location.coordinate.longitude)
      let region = MKCoordinateRegion(center: center, span: MKCoordinateSpan(latitudeDelta: 0.01, longitudeDelta: 0.01))
  
  
  
  
      //set region on the map
      self.map.setRegion(region, animated: true)
  
  
  
  }
  
  override func didReceiveMemoryWarning() {
      super.didReceiveMemoryWarning()
      // Dispose of any resources that can be recreated.
  }
  
  
  }
  </code></pre>