【Swift】位置情報の通知を遅延させる

CLLocationManager クラスの allowDeferredLocationUpdatesUntilTraveled メソッドを使用する。

var myLocationManager: CLLocationManager!
var deferringUpdates = false;

if !self.deferringUpdates
&& CLLocationManager.deferredLocationUpdatesAvailable() {

let differedDistance: CLLocationDistance = 1 //1m進んだら位置情報を受け取る
let differedTimeInterval: TimeInterval = 10.0 //10秒経過したら位置情報を受け取る

myLocationManager.allowDeferredLocationUpdatesUntilTraveled(differedDistance, timeout: differedTimeInterval)

CLLocationDistance(移動距離)のみを指定する場合

var myLocationManager: CLLocationManager!
var deferringUpdates = false;

if !self.deferringUpdates
&& CLLocationManager.deferredLocationUpdatesAvailable() {

let differedDistance: CLLocationDistance = 1 //1m進んだら位置情報を受け取る

myLocationManager.allowDeferredLocationUpdatesUntilTraveled(differedDistance, timeout: CLTimeIntervalMax)

TimeInterval(経過時間)のみを指定する場合

<br />var myLocationManager: CLLocationManager!
var deferringUpdates = false;

if !self.deferringUpdates
&& CLLocationManager.deferredLocationUpdatesAvailable() {

let differedTimeInterval: TimeInterval = 10.0 //10秒経過したら位置情報を受け取る

myLocationManager.allowDeferredLocationUpdatesUntilTraveled(CLLocationDistanceMax, timeout: differedTimeInterval)

allowDeferredLocationUpdatesUntilTraveledでコンパイルエラーが発生する場合

var myLocationManager: CLLocationManager!
var deferringUpdates = false;

if !self.deferringUpdates
&& CLLocationManager.deferredLocationUpdatesAvailable() {

let differedDistance: CLLocationDistance = 1 //1m進んだら位置情報を受け取る
let differedTimeInterval: TimeInterval = 10.0 //10秒経過したら位置情報を受け取る

myLocationManager.allowDeferredLocationUpdates(UntilTraveled: differedDistance, timeout: differedTimeInterval)



広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中