我正在做一个简单的速度表来学习Swift和Geolocation,而且我已经坚持了最高速度。我想显示用户实现的最大速度,而我的标签显示当前速度。以下是该函数的代码:
func locationManager(manager:CLLocationManager, didUpdateLocations locations:[CLLocation]) {
var latestLocation = locations.last as CLLocation!
var maxSpeed: Double = 0
latLabel.text = "\(latestLocation.coordinate.latitude)"
lonLabel.text = "\(latestLocation.coordinate.longitude)"
var speed: CLLocationSpeed = CLLocationSpeed()
speed = locationManager.location!.speed
if(speed<0){
speed=0;
}
speedLabel.text = String(format: "%.0f km/h", speed * 3.6)
maxSpeed = max(maxSpeed, speed)
maxSpeedLabel.text = String(format: "%.0f km/h", maxSpeed*3.6)
}
我想要的是speedLabel显示当前速度,而maxSpeedLabel仅在当前速度更高时才会更改。如果我不清楚,现在正在做什么:
(速度 - 最大速度)
3 - 3
4 - 4
5 - 5
4 - 4
这是我想要实现的目标:
(速度 - 最大速度)
3 - 3
4 - 4
5 - 5
4 - 5
6 - 6
3 - 6
我不知道为什么我的代码不起作用,我错过了什么?
感谢您的帮助!
答案 0 :(得分:0)
你必须从“func locationManager”中启动最大速度,因为最大速度在每次“迭代”(位置变化)时都会变为0,所以最大速度总是小于速度