2017-02-20 5 views
0

私は非常に奇妙な問題に直面しています.Location manager delegateメソッドは呼び出されていませんが、_locManager.locationをチェックすると、Xcode:didUpdateLocationsが呼び出されていませんが、ロケーションマネージャが更新中です

PS:NSLocationAlwaysUsageDescriptionがplistに記載されています。

また、[self.locationManager requestAlwaysAuthorization]とも呼んでいます。

ここに、要求されたLocation Managerセットアップコードがあります。

dispatch_async(dispatch_get_main_queue(), ^{ 

      _locManager = [[CLLocationManager alloc] init]; 

      _locManager.delegate = self; 

      _locManager.distanceFilter = kCLDistanceFilterNone; 

      _locManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation; 

      _locManager.activityType = CLActivityTypeFitness; 

      if ([_locManager respondsToSelector:@selector(requestAlwaysAuthorization)]) 
      { 
       [_locManager requestAlwaysAuthorization]; 
      } 
      if ([_locManager respondsToSelector:@selector(setAllowsBackgroundLocationUpdates:)]) 
      { 
       self.locManager.allowsBackgroundLocationUpdates =YES; 
      } 
      _locManager.pausesLocationUpdatesAutomatically=YES; 

     }); 
+0

コードを表示します(デリゲートはどこに設定しますか)。 – shallowThought

+0

このキーをplistファイルNSLocationWhenInUseUsageDescription –

+0

@JeckyModiにも追加してください。どうすればいいですか?具体的な理由はありますか? –

答えて

0

asyncブロックからロケーションマネージャを削除します。すでにasyncであるためです。また、非同期ブロックに保持すると、そのスレッドでデリゲートが呼び出されます。

関連する問題