gpt4 book ai didi

swift - Swift 中的核心位置

转载 作者:搜寻专家 更新时间:2023-11-01 05:43:19 24 4
gpt4 key购买 nike

这是示例代码。已安装 Info.plist 中的 NSLocationAlwaysUsageDescription 键。一切正常 - 程序接收坐标......显示它们......

它会继续永久更新它们!在 iOS 模拟器的情况下 - 这并不重要,但在实际应用程序的情况下,它会很快耗尽电池。如何让应用程序启动 Core Location、接收位置并关闭 Core Location?

import UIKit
import CoreLocation

class ViewController: UIViewController, CLLocationManagerDelegate {

@IBOutlet var locLabel: UILabel
@IBOutlet var latLabel: UILabel
@IBOutlet var lonLabel: UILabel

var locationManager = CLLocationManager()

override func viewDidLoad() {
super.viewDidLoad()
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}

@IBAction func locButton(sender: AnyObject) {
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.requestAlwaysAuthorization()
locationManager.startUpdatingLocation()
}

func locationManager(manager:CLLocationManager, didUpdateLocations locations:AnyObject[]) {
println("locations = \(locationManager)")
var latValue = locationManager.location.coordinate.latitude
var lonValue = locationManager.location.coordinate.longitude
latLabel.text = String(latValue)
lonLabel.text = String(lonValue)
locLabel.text = "success"
}

最佳答案

如果您不太关心高精度,那么您应该考虑 startMonitoringSignificantLocationChanges 而不是 startUpdatingLocation。它确实会在电池耗尽方面产生很大的不同。

此方法更适合大多数只需要初始用户位置固定并且仅在用户移动很长距离时才需要更新的应用程序。此接口(interface)仅在检测到设备相关手机信号塔发生变化时才提供新事件,从而减少更新频率并显着降低功耗。

更多细节你可以看看CLLocationManager Guide

关于swift - Swift 中的核心位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24610482/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com