Skip to Content
iOS 9 Swift Programming Cookbook
book

iOS 9 Swift Programming Cookbook

by Vandad Nahavandipoor
December 2015
Intermediate to advanced
350 pages
6h 32m
English
O'Reilly Media, Inc.
Content preview from iOS 9 Swift Programming Cookbook

Chapter 8. Maps and Location

In this chapter, we will have a look at some awesome updates to the MapKit and CoreLocation frameworks.

8.1 Requesting the User’s Location a Single Time

Problem

You want an optimized and energy-efficient way of requesting the current location of the user only once.

Solution

Use the requestLocation() method of the CLLocationManager class. The new location will be sent to your location manager’s locationManager(_:didUpdateLocations:) delegate method. Errors will be reported on locationManager(_:didFailWithError:). You can make only one request to this method at any given time. A new request will cancel the previous one.

Discussion

Place a button on your interface inside IB and then hook it up to a method in your code called requestLocation(). Then go into your Info.plist file and set the value of the NSLocationWhenInUseUsageDescription key to a valid string that explains to the user why you want to get her location. You will also have to import the CoreLocation framework and make your view controller conform to CLLocationManagerDelegate.

Implement a variable in your view controller to represent the location manager:

  lazy var locationManager: CLLocationManager = {
    let m = CLLocationManager()
    m.delegate = self
    m.desiredAccuracy = kCLLocationAccuracyNearestTenMeters
    return m
  }()

When your button is pressed, request access to the user’s location. This requests users location to be delivered to your app only when it is the foreground app. As soon as ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

iOS 10 Swift Programming Cookbook

iOS 10 Swift Programming Cookbook

Vandad Nahavandipoor

Publisher Resources

ISBN: 9781491936689Errata Page