0

ラベルに表示したり Web サーバーに送信したりするために、一定の時間間隔で GPS 座標を提供するアプリを構築しようとしていますが、難しいことがわかっています。正確なライブ GPS 座標を取得することはできましたが、ボタンを押してラベルを更新する必要があります。

didUpdateLocation メソッドは今のところこれで問題ないと思いますが、決して実行されないようです。NSLog の投稿を含めてこれをテストしています。Apple の LocateMe サンプル アプリでこれを行うと、正常に動作します。

以下は私の方法です:

- (void)locationManager:(CLLocationManager *)manager
        didUpdateToLocation:(CLLocation *)newLocation
        fromLocation:(CLLocation *)oldLocation
{
     theLocation = [NSString stringWithFormat:@"latitude: %f
        longitude: %f", locationManager.location.coordinate.latitude,
        locationManager.location.coordinate.longitude];

     NSLog(@"location manager did something!!!");
}

問題は上記の方法以外にあると推測していますが。それがstartUpdatingLocationであるため、viewDidLoadメソッドを含める必要があると思います。

- (void)viewDidLoad
{
    [super viewDidLoad];
    locationManager = [[CLLocationManager alloc] init];
    locationManager.distanceFilter = kCLDistanceFilterNone;
    locationManager.desiredAccuracy = kCLLocationAccuracyBest;
    [locationManager startUpdatingLocation];
    [outletLabelData setText:(@"Loaded")];
}

また、ボタン アクション メソッドに startUpdatingLocation を設定し、更新を開始および停止するスイッチのように機能させることも試みましたが (更新イベントをトリガーする必要があります)、まだ成功していません。

その他の詳細:

  • Xcode 4.4
  • iOS 5.1
  • Mac に接続した状態で iPhone でアプリをテストする

誰でもこれを手伝ってもらえますか?

4

1 に答える 1

1

CCLocationManager誰が代理人であるかを伝える必要があります。あなたの場合、それはあなたの現在のコントローラーです。

locationManager = [[CLLocationManager alloc] init];
[locationManager setDelegate:self];

そして明らかに、コントローラーがCLLocationManagerDelegateプロトコルに準拠していることを確認してください。

于 2012-08-10T09:26:44.097 に答える