1

在我的应用程序中,我试图将用户位置的 gps 坐标发布到服务器进行存储,以便我最终可以设计一个显示所有用户位置的地图。我正在使用 HTTP get 和自定义 PHP API 来处理从应用程序传递到数据库的数据。我遇到的问题是,每次调用 didUpdateLocations 时,我都会更新服务器。它有时有效,但有时我的查询字符串说有一个未定义的变量,并且空白数据正在发布到他的数据库中。为什么有时它是未定义的,有时不是?另外,有没有更好的方法来处理数据传递?我打算使用 ASIHTTPRequest 但我使用的是 ARC,所以这对我没有帮助。

代码:

- (void)postLocationUpdateFor:(NSString *)deviceToken withDeviceID:(NSString*)deviceID  withLatitude:(NSString *)latitude andLongitude:(NSString *)longitude {

    NSString *apiURL = [NSString stringWithFormat:ServerApiURL2, deviceToken, deviceID, latitude, longitude];
    NSData *dataURL = [NSData dataWithContentsOfURL:[NSURL URLWithString:apiURL]];
    NSString *strResult = [[NSString alloc] initWithData:dataURL encoding:NSUTF8StringEncoding];

    NSLog(@"%@", strResult);

}

- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations {

    CLLocation *currentLocation = [locations lastObject];

    NSString *deviceToken = [[NSUserDefaults standardUserDefaults] stringForKey:@"deviceToken"];
    NSString *latitude = [NSString localizedStringWithFormat:@"%f",currentLocation.coordinate.latitude];
    NSString *longitude = [NSString localizedStringWithFormat:@"%f",currentLocation.coordinate.longitude];

    NSLog(@"Entered new Location with the coordinates Latitude: %@ Longitude: %@", latitude, longitude);

    [self postLocationUpdateFor:@"123" withDeviceID:deviceToken withLatitude:latitude andLongitude:longitude];
}
4

1 回答 1

2
didUpdateLocations

可以在您实际丢失位置时调用:进入电梯/建筑物。这就是为什么有时是空的。

在发送服务器之前,我会检查并验证该位置值。

于 2012-12-27T19:39:25.403 回答