gpt4 book ai didi

ios - 将位置数据 POST 到接收多个条目的服务器

转载 作者:行者123 更新时间:2023-11-30 14:00:49 31 4
gpt4 key购买 nike

我有一个 iPhone 应用程序,它使用 AlamoFire 将经度/纬度发送到服务器。当按下按钮时,数据从应用程序发送。除了服务器从一个操作接收相同数据的多个条目之外,一切都运行良好。我可以在模拟器输出和服务器中看到这一点。而且它似乎是随机的,有时是 3 个条目、2 个或只是 1 个。使用 swift 2.0,代码如下:

func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
print("inside didUpdateLocations", terminator: "")

let latestLocation = locations.last
let coords = latestLocation!.coordinate
print("Latitude: " + coords.latitude.description + " Longitude: " + coords.longitude.description, terminator: "")

locationManager.stopUpdatingLocation()

// **UPDATED HERE**
locationManager.delegate = nil

let recievedData : CLLocation! = nil

if recievedData == nil {
sendDatatoServer(coords.longitude, latitude: coords.latitude, date: dateString)
}} // **End UPDATE**

func locationManager(manager: CLLocationManager, didFailWithError error: NSError) {
print("Error while updating location: " + error.localizedDescription, terminator: "")
}
@IBAction func findMyLocation(sender:AnyObject) {
print("inside findMyLocation", terminator: "")
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters
locationManager.requestWhenInUseAuthorization()
locationManager.startUpdatingLocation()
}
// send the longitude, latitude, and date to the database server
func sendDatatoServer(longitude: Double!, latitude: Double!, date: String!) {
print("inside sendDataToServer", terminator: "")
Alamofire.request(.POST, "http://example.com", parameters:["latitude": latitude, "longitude": longitude, "date": date])
}

xcode 的输出:

inside findMyLocation * inside didUpdateLocations * Latitude: -26.204103 Longitude: 28.0473051inside sendDataToServer * 
inside didUpdateLocations * Latitude: -26.204103 Longitude: 28.0473051inside sendDataToServer *
inside didUpdateLocations * Latitude: -26.204103 Longitude: 28.0473051inside sendDataToServer *

来自数据库:

ID:622 ---> 经度:28.0473。纬度:-26.2041。日期:2015-10-08 10:04 AM

ID:623 ---> 经度:28.0473。纬度:-26.2041。日期:2015-10-08 10:04 AM

ID:624 ---> 经度:28.0473。纬度:-26.2041。日期:2015-10-08 10:04 AM

在这个特定的 POST 中,它发送了 3 次。从 xcode 输出来看,它看起来来自 didUpdateLocations,但我不明白为什么。

最佳答案

停止更新位置后,您还应该将委托(delegate)设置为零。这将防止将来对委托(delegate)进行任何调用,直到您再次设置为止。

我还建议在调用 post 方法之前对您的位置进行一些检查,以确保您拥有有效的位置。

关于ios - 将位置数据 POST 到接收多个条目的服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33018489/

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