0

我对Objective-c&目前正在构建我的第一个应用程序相当陌生。我正在尝试将 iPhone 的位置输出到要在JSON请求中使用的字符串。

我已经建立了请求,但我不确定如何获取 iPhone 的位置,更不用说进入字符串和我发现难以遵循的苹果文档了。

我怎样才能做到这一点?

编辑:我已经看到如何像这样实现位置:

- (void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
       fromLocation:(CLLocation *)oldLocation {
CLLocationDegrees latitude = newLocation.coordinate.latitude;
CLLocationDegrees longitude = newLocation.coordinate.longitude;
}

但是我不确定把它放在哪里,这不是一个对象是吗?

我不需要初始化它?

我尝试编辑它以将 newLocation 作为搅拌而不是 void 返回,但我该如何称呼它?

我需要在 ( CLLocationManager*) 中输入什么?

4

2 回答 2

1

CLLocationManager课程允许您跟踪您当前的位置。

如果你想用它来找到你的位置,那就是你需要做的:

// Create an instance of CLLocationManager class :
CLLocationManager *locationManager = [[CLLocationManager alloc] init];

// Set the delegate of your instance :
locationManager.delegate = self; // Set your controller as a <CLLocationManagerDelegate>.

// Now update your location :
[locationManager startUpdatingLocation];

现在,每次CLLocationManager实例更新时,都会调用委托方法:

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

这意味着每次您locationManager更新其位置时,都会调用此方法。

现在您可以通过添加 .m 文件来覆盖该方法:

- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
{
    // Do whatever you want here
}

例如,如果您想存储当前坐标,您可以执行以下操作:

在 .h 中声明:

float latitude;
float longitude;

然后完成委托方法(用 .m 编写):

- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
{
    latitude = [manager location].coordinate.latitude;
    longitude = [manager location].coordinate.longitude;
}

现在您可以将您的值存储在 NSString 中,就像 @amar 回答的那样。

我已经编辑了这个答案 6 次,所以我希望这能回答你的问题并帮助你:D。

于 2013-05-10T09:18:42.880 回答
0

所有你需要的是[NSString stringWithFormat:@"%f",<your float>];

于 2013-05-10T07:00:51.827 回答