Getting a simple Swift CoreLocation example to work

I've tried the following simple CoreLocation examples using Swift, but I can't seem to get everything to work. I've extracted most of the code, so it's just barebones to focus the question, and I hope that the answer will prompt someone quickly.

import UIKit

import CoreLocation


class ViewController: UIViewController,CLLocationManagerDelegate {
@IBOutlet weak var txtLatitude: UITextField!
@IBOutlet weak var txtLongitude: UITextField!

@IBOutlet weak var cmdLocateMe: UIButton!
@IBOutlet weak var slider: UISlider!
@IBOutlet weak var txtSlider: UITextField!
@IBOutlet weak var power: UISwitch!
var locationManager: CLLocationManager!


override func viewDidLoad() {
    locationManager = CLLocationManager();
    locationManager.delegate = self;
    locationManager.desiredAccuracy = kCLLocationAccuracyBest
    locationManager.startUpdatingLocation();
    super.viewDidLoad()


    // Do any additional setup after loading the view, typically from a nib.
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}


@IBAction func valueChanged(sender: UISlider) {
    if power.on{
    var val = "\(slider.value)";
    txtSlider.text = val;
    }
}


@IBAction func cmdLocateMeClicked(sender: UIButton) {


}

//Deprecated
@IBAction func cmdLocateMePressed(sender: AnyObject) {
}

//CLLocationManagerDelegate
func locationManager(manager: CLLocationManager!, didUpdateLocations locations: [AnyObject]!) {
    var location:CLLocation = locations[locations.count-1] as CLLocation

    println("locations = \(locations)")
    txtLatitude.text = "\(location.coordinate.latitude)";
    txtLongitude.text = "\(location.coordinate.longitude)";
}

func locationManager(manager: CLLocationManager!, didFailWithError error: NSError!) {
    println(error)
    txtLatitude.text = "Can't get your location!"
}

      

}

+3


source to share


1 answer


It turned out that I had to grant permissions for my app to get location information on the iOS Simulator (Settings -> Privacy -> Location). Once I did that, everything worked great.



+2


source







All Articles