0

アプリケーションで台風フレームワークを使用しています。私のアプリケーションは正常に動作しています。今、私は自分のアプリで位置情報を更新したいと考えています。Location フレームワークを追加し、コードを実装しました。しかし、CLLocationManger デリゲート メソッドが機能していません。

デモアプリで同じコードをコピーしましたが、依存関係はなく、同じコードが機能し始め、場所の更新を取得できます。

そのような行動の考えられる理由を誰か教えてください。

私が使用しているコードは次のとおりです。

私のLoginViewController.miでは、(void)viewDidLoadメソッドで次のコードを使用しています

if (![CLLocationManager locationServicesEnabled]) {
    [[[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Location Services Disabled", nil)
                                message:NSLocalizedString(@"You currently have all location services for this device disabled. If you proceed, you will be asked to confirm whether location services should be reenabled.", nil)
                               delegate:nil
                      cancelButtonTitle:NSLocalizedString(@"OK", nil)
                      otherButtonTitles:nil] show];
} else {
    self.locationManager = [[CLLocationManager alloc] init];
    self.locationManager.delegate = self;
    self.locationManager.desiredAccuracy = kCLLocationAccuracyBest;
    [self.locationManager startUpdatingLocation];
}

#pragma mark - CLLocationManagerDelegate
 - (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error
     {
       NSLog(@"didFailWithError: %@", error);
       UIAlertView *errorAlert = [[UIAlertView alloc]
                           initWithTitle:@"Error" message:@"Failed to Get Your Location" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
        [errorAlert show];
     }


    - (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
         {
            NSLog(@"didUpdateToLocation: %@", newLocation);              
         }
4

2 に答える 2

0

Typhoon についてはわかりませんが、クラスの存続期間全体にわたってマネージャーを保持し、もちろんそのデリゲートを正しく割り当てるために、マネージャーへの強力な参照を維持していることを確認してください。

于 2014-04-03T07:29:42.393 に答える