0
私のアプリケーションでは、CoreLocation機能モジュールを開発しており、startUpdatingLocation
またはstopUpdatingLocation
が呼び出されたかどうかを知る必要があります。 私はブール変数を使うことができますが、もっとグローバルに役に立つものがあるのだろうかと思います。locationManagerがアクティブか停止しているかを知る方法はありますか?
私のアプリケーションでは、CoreLocation機能モジュールを開発しており、startUpdatingLocation
またはstopUpdatingLocation
が呼び出されたかどうかを知る必要があります。 私はブール変数を使うことができますが、もっとグローバルに役に立つものがあるのだろうかと思います。locationManagerがアクティブか停止しているかを知る方法はありますか?
CLLocationManagerの「実行中」ステータスを確認するAPIはありません。クラス内でCLLocationManagerをラップする(またはサブクラス化する)ことができ、このカスタムクラスで "実行中"の状態を持つことができます。
おそらくこのような何か:
スウィフト:
class MyLocationManager: CLLocationManager {
var running: Bool
override init() {
running = false
super.init()
}
override func startUpdatingLocation() {
super.startUpdatingLocation()
running = true
}
override func stopUpdatingLocation() {
super.stopUpdatingLocation()
running = false
}
}
にObjC:
@interface MyLocationManager : CLLocationManager
@property (nonatomic, assign) BOOL running;
@end
@implementation MyLocationManager
- (void) startUpdatingLocation
{
[super startUpdatingLocation];
self.running = YES;
}
- (void) stopUpdatingLocation
{
[super stopUpdatingLocation];
self.running = NO;
}
@end
PS:このクラスはスレッドセーフではありませんが、あなたはアイデア
を取得