You can use this service I wrote to handle everything for you.
This service will request the permissions and handle dealing with the CLLocationManager so you don't have to.
Use like this:
LocationService.getCurrentLocationOnSuccess({ (latitude, longitude) -> () in
//Do something with Latitude and Longitude
}, onFailure: { (error) -> () in
//See what went wrong
print(error)
})