正在尝试发送 POST 个带有纬度和经度的参数

Trying to send POST parameters with latitude and longitude

我正在尝试将一些参数发送到我的 phpMyAdmin 表,其中包含一个名为纬度和经度的文件。此后,我需要获取设备坐标并将其转换为字符串。

我已按照 Ray Wenderlich 教程进行操作,但我的参数中仍然出现 "nil"。看看下面的代码:

1 - 我已将框架添加到代码中并将 CoreLocation 文件导入到我的 "ResumeView.h",同时声明了纬度和经度字符串。

#import <CoreLocation/CoreLocation.h>

@interface ResumeView : GAITrackedViewController <UIAlertViewDelegate, CLLocationManagerDelegate>
{
NSString *latitude;
NSString *longitude;

2 - 现在,在我的 "ResumeView.m" 上,我添加了教程后面的其余代码...

@implementation ResumeView {

    CLLocationManager *manager;

}

@synthesize latitude;
@synthesize longitude;

3 - 现在,在 viewDidLoad 上...

- (void)viewDidLoad
{
    [super viewDidLoad];

    manager = [[CLLocationManager alloc] init];

    manager.delegate = self;

    manager.desiredAccuracy = kCLLocationAccuracyBest;

    [manager startUpdatingLocation];

4 - 然后,这些函数在我的代码中被引入,当然,在可以发送 POST 参数之前。

#pragma mark CLLocationManagerDellegate Methods

-(void) locationManager:(CLLocationManager *) manager didFailWithError: (NSError *)error {

    NSLog(@"error: %@", error);
    NSLog(@"Failed to get location! :(");
}

-(void) locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {

    NSLog(@"Location: %@", newLocation);

    CLLocation *currentLocation = newLocation;

    if (currentLocation != nil) {
        latitude = [NSString stringWithFormat: @"%.8f", currentLocation.coordinate.latitude];
        longitude = [NSString stringWithFormat: @"%.8f", currentLocation.coordinate.longitude];
    }
}

5 - 这就是问题所在,两个坐标值都是 "nil" 并且无法发送到数据库。

 @"latitude":latitude, // <---- error here! is nil when sending to database!
 @"longitude":longitude, // <---- error here! is nil when sending to database!

您的值为零,因为位置管理器从不向您发送更新。您需要在 iOS 8 中调用新功能才能让位置管理器工作。将此 post 视为起点: