ユーザーの場所と残りのコードに問題があります...
特定の場所の Foursquare API からレストランを取得するコードを開発しました。私が解決しようとしている問題はこれです:
これは、情報を取得するために使用する URL 文字列です (緯度と経度は、作業を開始するためだけにハードコーディングされています)。
https://api.foursquare.com/v2/venues/search?ll=51.51,-0.13&categoryId=4bf58dd8d48988d1c4941735&radius=3000&oauth_token=A5ZDWL2DLXPZCQ3ZJESVOAKDMPQHSNNVWC3UMVOUOXPQHWRT&v=20121105
URL 文字列を 3 つの部分に分けました。2 番目の部分は現在のユーザーの場所です。
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];
次のように2番目の文字列部分の座標を配置すると、すべて機能します。
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 を使用すると、必要な正しい出力が得られます。
最後に、私の質問は、ユーザーの場所を変数で取得し、ビューの DidLoad メソッドNSString *secondStringPart = currentLocationString;
で [locationManager startUpdatingLocation] の直後に使用する方法です。
それとも私は何か間違ったことをしていますか?
助けていただければ幸いです、ありがとう...