3

我的用户位置和我的其余代码有问题......

我开发了一个代码,可以从 Foursquare API 中检索特定位置的餐厅。我要解决的问题是:

这是我用来检索信息的 URL 字符串(lat. 和 lon. 硬编码只是为了让事情开始):

https://api.foursquare.com/v2/venues/search?ll=51.51,-0.13&categoryId=4bf58dd8d48988d1c4941735&radius=3000&oauth_token=A5ZDWL2DLXPZCQ3ZJESVOAKDMPQHSNNVWC3UMVOUOXPQHWRT&v=20121105

我将 URL 字符串分为三部分,其中第二部分是当前用户位置。

NSString *firstStringPart = @"https://api.foursquare.com/v2/venues/search?ll=";
    NSString *secondStringPart = currentLocationString;
    NSString *thirdStringPart = @"&categoryId=4bf58dd8d48988d1c4941735&radius=3000&oauth_token=A5ZDWL2DLXPZCQ3ZJESVOAKDMPQHSNNVWC3UMVOUOXPQHWRT&v=20121105";

然后我想将字符串附加在一起

NSString *connectedUrlString = [[firstStringPart stringByAppendingString:secondStringPart] stringByAppendingString:thirdStringPart];

如果我像这样为第二个字符串部分放置坐标,这一切都有效:

NSString *secondStringPart = @"51.51,-0.13";

我还做了一个小测试项目来获取用户位置,它正在使用以下代码:

@interface ViewController ()

@end

@implementation ViewController

@synthesize locationManager, location;


- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    [self setLocationManager:[[CLLocationManager alloc] init]];
    [locationManager setDelegate:self];
    [locationManager setDistanceFilter:kCLDistanceFilterNone];
    [locationManager setDesiredAccuracy:kCLLocationAccuracyBest];
    [locationManager startUpdatingLocation];

}

- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
{
    CLLocation *currentLocation = [locations lastObject];

    NSString *lat = [NSString stringWithFormat:@"%.2f", currentLocation.coordinate.latitude];
    NSString *lon = [NSString stringWithFormat:@"%.2f", currentLocation.coordinate.longitude];

    location = [NSString stringWithFormat:@"%@,%@", lat, lon];

    NSLog(@"%@", location);
    [locationManager stopUpdatingLocation];

}

使用 NSLog 我得到了我想要的正确输出。

最后,我的问题是,如何在变量中获取用户位置并NSString *secondStringPart = currentLocationString;在 [locationManager startUpdatingLocation] 之后的视图 DidLoad 方法中使用它

还是我做错了什么?

非常感谢您的帮助,谢谢...

4

1 回答 1

0

解决了...

我已经解决了问题...

我不得不将我的代码移动到该- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations方法并在其中执行所有操作......

于 2012-11-13T12:35:32.617 回答