0

私はかなり新しく、Objective-c現在最初のアプリを構築しています。JSONリクエストで使用する文字列に iPhone の場所を出力しようとしています。

リクエストを作成しましたが、iPhone の場所を取得する方法がわかりません。ましてや、文字列とアップルのドキュメントを取得するのが難しいと感じています。

これどうやってするの?

編集:次のように場所を実装する方法を見てきました:

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

しかし、これをどこに置くべきかわかりません。これはオブジェクトではありませんか?

初期化しなくていいの?

これを編集して、newLocation を void ではなく string として返すようにしましたが、どのように呼び出すのですか?

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;
}

@amar Answers のように、値を NSString に保存できるようになりました。

私はこの回答を6回ほど編集したので、これがあなたの質問に答えて、あなたを助けることを願っています:D.

于 2013-05-10T09:18:42.880 に答える