核心位置和授权
我们将探讨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,因为它会耗尽手机电池的电量。 - 请求位置服务授权:
两种授权方式:
- 使用时授权 (推荐):
应用可以使用大多数服务,但不能使用自动重新启动应用的服务。
2.始终授权:(如果需要)
应用可以使用所有位置服务,并且可以启动
这些服务来自背景和前景。 如果与位置相关的事件
发生且应用未运行时,系统将启动应用并交付
事件。
调用locManager.requestWhenInUseAuthorization()
添加说明,以便用户可以理解您的应用为何需要定位服务。
打开info.plist并添加“隐私-使用中的位置用法说明”并设置用户将在弹出窗口中看到的值。
locManager.startUpdatingLocation()—此方法在后台运行,一旦位置管理器获取位置数据,此方法即可。 它将发送消息给委托,ViewController将通过委托方法接收这些位置数据。
- 不要忘记调用locManager。 stopUpdatingLocation (),因为更新位置是非常耗能的过程,不调用它可能会破坏用户的电池。