3

私はiPhone SDK 4.0を使用しています.現在の場所を取得するために以下のコードを使用しましたが、デリゲートメソッドは自動的に呼び出されません...私のコードは以下のとおりです:

.hfile

私はインポートを持っています

CoreLocation/CoreLocation.h

委任も

CLLocationManagerDelegate

CLLocationManager *locationManager;

.mfile

    locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.distanceFilter = kCLDistanceFilterNone; // whenever we move
locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters; // 100 m
[locationManager startUpdatingLocation];

しかし、私はその現在の場所を取得していません......私のデリゲートメソッドは呼び出されていません:

- (void)locationManager:(CLLocationManager *)manager
    didUpdateToLocation:(CLLocation *)newLocation
           fromLocation:(CLLocation *)oldLocation
{

}
4

2 に答える 2

0

同じ問題が発生します。すべてのコードは正常に見えますが、デリゲート メソッドは呼び出されませんでした。

シミュレーターを完全に閉じました。アプリを再実行すると、デリゲート メソッドが呼び出されました。

于 2013-12-09T16:17:30.860 に答える
0

あなたのコードは私には正しいようです。このコードを実際の iPhone でも実行しようとしましたか? シミュレーターは、常にロケーション マネージャーの更新に応答するとは限りません。.m ファイルに追加する必要がある別の重要なデリゲート メソッドもあります。

- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)エラー

これは、何か問題が発生した場合に呼び出されます。たとえば、ロケーション マネージャーが iPhone のローカライズに失敗しました。

于 2011-05-29T07:32:08.813 に答える