核心位置和授权

我们将探讨CoreLocation API以及如何在您的应用程序中使用它。

核心位置是由苹果开发人员编写的框架,可提供
确定设备的地理位置,高度和
取向。

该框架使用了所有可用的板载硬件,包括Wi-Fi,GPS,
蓝牙,磁力计,气压计和蜂窝硬件可收集数据。

CLLocationManager用于启动和停止该对象的对象
向您的应用传递与位置相关的事件。

要设置位置管理器以从iPhone获取GPS数据的步骤:

  • 在您的ViewController中导入CoreLocation。
  • 在ViewContoller中符合(实施) CLLocationManagerDelegate

创建locationManager对象
让locManager = CLLocationManager()

  • 在ViewDidLoad()中设置位置管理器
    locManager.delegate =自我
    这意味着我们同意成为LocationManager的代表,一旦LocationManager获得gps位置数据,它将知道向谁报告或通过
    该数据到。

设置desiredAccuracy属性:

  • 接收机尽最大努力达到要求的精度; 但是,不能保证实际的准确性。
  • 黄金法则:确定更精确的位置需要更多的时间和更多的精力。
    因此,请根据您的项目和用例要求明智地设置desireAccuracy。 例如,如果您可以使用kCLLocationAccuracyKilometer ,则无需设置
    设为kCLLocationAccuracyBest,因为它会耗尽手机电池的电量。
  • 请求位置服务授权:

两种授权方式:

  1. 使用时授权 (推荐):

应用可以使用大多数服务,但不能使用自动重新启动应用的服务。

2.始终授权:(如果需要)

应用可以使用所有位置服务,并且可以启动
这些服务来自背景和前景。 如果与位置相关的事件
发生且应用未运行时,系统将启动应用并交付
事件。

调用locManager.requestWhenInUseAuthorization()

添加说明,以便用户可以理解您的应用为何需要定位服务。

打开info.plist并添加“隐私-使用中的位置用法说明”并设置用户将在弹出窗口中看到的值。

locManager.startUpdatingLocation()—此方法在后台运行,一旦位置管理器获取位置数据,此方法即可。 它将发送消息给委托,ViewController将通过委托方法接收这些位置数据。

  • 不要忘记调用locManager。 stopUpdatingLocation (),因为更新位置是非常耗能的过程,不调用它可能会破坏用户的电池。