我正在使用xcode和swift为苹果制作一个跑步(慢跑)应用程序,我所使用的xcode版本是7.0 / 7.1当你开始一个新的跑步时,会出现一张地图并跟踪你在哪里跑步和显示时间,距离和节奏。这一切都适用于我使用调试模拟器,但是当我把它放在设备上,运行ios 8.4的ipad,我开发了应用程序,地图出现但没有显示位置所以它无法计算距离或速度当你试图保存运行时,我得到一个没有找到位置的错误。与在模拟器上工作相比,不确定在实际设备上的代码中要检查的内容。我尝试了一些我在这个网站上找到的东西,但是它们没有用。我关闭了模拟位置并将调试模拟设置为无。在我这样做后,我删除了设备上的应用程序,退出xcode重新启动并在设备上重建它。谢谢你的帮助
@IBAction func startPressed(sender: AnyObject) {
startButton.hidden = true
promptLabel.hidden = true
timeLabel.hidden = false
distanceLabel.hidden = false
paceLabel.hidden = false
stopButton.hidden = false
seconds = 0.0
distance = 0.0
locations.removeAll(keepCapacity: false)
timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: "eachSecond:", userInfo: nil, repeats: true)
startLocationUpdates()
mapView.hidden = false
}
> // MARK: - CLLocationManagerDelegate extension NewRunViewController:
> CLLocationManagerDelegate { func locationManager(manager:
> CLLocationManager!, didUpdateLocations locations: [AnyObject]!) {
> for location in locations as! [CLLocation] {
> let howRecent = location.timestamp.timeIntervalSinceNow
if abs(howRecent) < 10 && location.horizontalAccuracy < 20 {
//update distance
if self.locations.count > 0 {
distance += location.distanceFromLocation(self.locations.last)
var coords = [CLLocationCoordinate2D]()
coords.append(self.locations.last!.coordinate)
coords.append(location.coordinate)
let region = MKCoordinateRegionMakeWithDistance(location.coordinate, 500, 500)
mapView.setRegion(region, animated: true)
mapView.addOverlay(MKPolyline(coordinates: &coords, count: coords.count))
}
//save location
self.locations.append(location)
}
}
}
}
答案 0 :(得分:0)
您是否曾要求用户使用其GPS位置?你是否向Info.plist添加了密钥:
<key>NSLocationAlwaysUsageDescription</key>
<string>Get Your Location </string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>Get Your Location For </string>
你能发布你的代码吗?