問題タブ [cllocationmanager]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
iphone - エラーEXC_BAD_ACCESS
私はiPhone開発の初心者で、EXC_BAD_ACCESSエラーが発生します。
私の.hファイルで私は宣言します:
.mファイルには、次の2つの方法があります。
1.CLLocationManagerインターフェイスの(void)locationManagerを実行すると、次のようになります。
2.A(void)sendPositionメソッド:
手伝って頂けますか?
iphone - iPhone Objective-C: 他のアクションを実行する前に、ユーザーが位置情報の共有を許可していることを確認してください
私のアプリケーションはログイン画面で場所を尋ねますが、現在、ユーザーは自分の場所を共有せずにログインできます。ユーザーが場所の共有で「いいえ」を選択すると、次のエラーError Domain=kCLErrorDomainCode=1 "The operation couldn't be completed. (kCLErrorDomain error 1.)"
がスローされます。そのようなものを持たずに緯度と経度にアクセスしようとしているからだと思います。
私の質問は、他の操作を行う前に、ユーザーが位置情報を許可していることを確認するにはどうすればよいですか? 新しい「位置情報の許可」ポップアップ リクエストを作成する方法はありますか?
前もって感謝します!
iphone - CLLocation Manager がユーザーにプロンプトを表示しない
ロケーションマネージャーが存在しない場合は作成して開始する方法を使用しています。ユーザーが位置情報サービスを無効にしているかどうかを確認し、サービスを開始するために BOOL が指定されていない限り、それを尊重します。このメソッドは、サービスが開始されたかどうかを示すために BOOL を返します。
これは、サービスを開始してユーザーに初めてプロンプトを表示する場合に問題なく機能します。許可をタップした場合は通常どおり続行し、許可しない場合は手動で場所を入力するためのビューを表示します。
ただし、位置情報サービスの使用についてユーザーが考えを変えられるようにしたいので、GPS の使用に戻るためのボタンを用意しました。同じ関数を再度呼び出しますが、今回はユーザーの位置情報サービスの設定を無視します。これにより、ユーザーは再度許可/禁止するよう求められるはずですが、代わりに kCLDenied エラー コードがすぐに表示されます。
http://developer.apple.com/iphone/library/documentation/UserExperience/Conceptual/LocationAwarenessPG/CoreLocation/CoreLocation.html#//apple_ref/doc/uid/TP40009497-CH2-SW11に基づいて、別のユーザー プロンプトを期待します。即時エラーではありません。
(私のロケーション マネージャー デリゲートは、拒否されたエラーが受信された場合、ロケーション マネージャーを解放し、nil に設定します。)
iphone - xcode 3.2.3 およびシミュレーター 4.0 に切り替える際の問題
これは、xcode 3.2.3 でアプリをビルドし、シミュレーター 4.0 で実行した後に発生した問題のリストです。もちろん、これらの問題はすべて以前の環境で機能しました。
ロケーション マネージャーはロケーションを更新しません。以前はクパチーノの場所で更新されていましたが、現在、locationManager:didFailWithError: がエラー 0 で呼び出されます。
マップ ビューがありますが、パンが機能しません。地図を動かしたり、つまんだりするジェスチャー。
マップをクリックしたままにすると、アプリがクラッシュすることがあり、ログにロング タッチに関する何かが表示されます。
ありがとう、ツル。
iphone - viewDidLoad で無効になっている場合、locationServicesEnabled テストはパスします
設定パネルでアプリケーションの位置情報サービスを無効にしています。View Controller の viewDidLoad でテストを実行して、それらが有効になっているかどうかを確認します。
このテストは、何らかの理由で常にパスします。ロケーション サービスにアクセスしようとすると、ロケーション マネージャの kCLErrorDenied エラーが発生します。何を与える?
間違ったテストを使用していますか?
ios - 終了/一時停止時の重要な変更場所APIの動作?
これは、startMonitoringSignificantLocationChangesを使用したアプリの動作を説明するCLLocationManagerドキュメントのセクションです。
このサービスを開始し、その後アプリケーションが終了した場合、新しいイベントが到着すると、システムは自動的にアプリケーションをバックグラウンドで再起動します。このような場合、アプリケーションデリゲートのapplication:didFinishLaunchingWithOptions:メソッドに渡されるオプションディクショナリには、ロケーションイベントが原因でアプリケーションが起動されたことを示すキーUIApplicationLaunchOptionsLocationKeyが含まれています。再起動時に、ロケーションマネージャオブジェクトを設定し、このメソッドを呼び出してロケーションイベントの受信を継続する必要があります。位置情報サービスを再開すると、現在のイベントがすぐに代理人に配信されます。さらに、ロケーションマネージャオブジェクトのロケーションプロパティには、ロケーションサービスを開始する前でも、最新のロケーションオブジェクトが入力されます。
したがって、私の理解では、アプリが終了した場合(そして、applicationWillTerminateからstopMonitoringSignificantLocationChangesを呼び出さなかった場合)、application :didFinishLaunchingWithOptionsへのUIApplicationLaunchOptionsLocationKeyパラメーターでウェイクアップされます。その時点で、CLLocationManagerを作成し、 startMonitoringSignificantLocationChangesを呼び出して、限られた時間だけバックグラウンドロケーション処理を実行します。だから私はこのビットで大丈夫です。
前の段落では、アプリが終了したときに何が起こるかについてのみ説明しており、アプリケーションが一時停止されたときに何をするかについては示唆していません。didFinishLaunchingWithOptionsのドキュメントには次のように書かれています。
アプリケーションはバックグラウンドで位置の更新を追跡し、パージされ、再起動されました。この場合、ディクショナリには、新しいロケーションイベントが原因でアプリケーションが再起動されたことを示すキーが含まれています。
この呼び出しは、終了後にアプリが起動されたとき(場所が変更されたため)にのみ受信されることを提案します。
ただし、ロケーション認識プログラミングガイドの重要な変更サービスに関する段落には、次のように記載されています。
このサービスを実行したままにして、アプリケーションがその後一時停止または終了した場合、新しい位置データが到着すると、サービスはアプリケーションを自動的にウェイクアップします。ウェイクアップ時に、アプリケーションはバックグラウンドに置かれ、位置データを処理するために少し時間が与えられます。アプリケーションはバックグラウンドにあるため、最小限の作業を実行し、割り当てられた時間が経過する前にアプリケーションが戻るのを妨げる可能性のあるタスク(ネットワークのクエリなど)を回避する必要があります。そうでない場合、アプリケーションが終了する可能性があります。
これは、アプリが一時停止されている場合に位置データで目覚めていることを示していますが、どのように目覚めているのかについては言及していません。
- UIApplicationDelegateは、一時停止状態からバックグラウンド状態に再開していることを通知するコールバックを受け取りますか?
- ロケーションマネージャー(アプリが一時停止されたときにフリーズドライされた)は、locationManager:didUpdateToLocation:fromLocationコールバックの受信を開始しますか?
- アプリケーションの状態をチェックし、バックグラウンドモードの場合は最小限の処理を実行するdidUpdateToLocationメッセージにコードを実装する必要がありますか?
これを書いている過程で、私は自分の質問に答えたばかりかもしれませんが、これについての私の理解をもっと知識のある人に確認してもらうのは素晴らしいことです。
iphone - 指定された精度で 1 回限りの位置情報を取得するにはどうすればよいでしょうか?
ドキュメントでは、おおよその位置を取得し、より細かい精度で更新し続けると書かれています。私はするボタンを持っています
そして、私は実装します
どこかで道案内をしてもらいます。何らかの理由で、どこかを運転しているときに場所が更新されません。これは、「一般的な場所」を取得し、正確な読み取りを取得するのに十分な時間がないためだと思います。私も持っています
何かご意見は?一度だけ正確な測定値が必要です。困惑した。ありがとう。
ios4 - iPhone CoreLocation - 精度が正しく機能していませんか?
gpsを使用するアプリを開発しています。高精度が必要なので、desiredAccuracy に kCLLocationAccuracyBestForNavigation を使用しました。アプリを実行しているとき、次のメソッドが期待どおりに呼び出されます。
このメソッド内で、次のコード セグメントで精度が十分かどうかを確認しています。
しかし、newLocation.horizontalAccuracy が 17.00 メートルを下回らないため、この if ブロックがアクティブになることはありません。iPhone 3GS OS 3.1.2 でこのコードを実行していたとき、すべて正常に動作していました。しかし、4.0.1にアップグレードして以来、精度に問題があるようです。iOS 3.1.2 でもスムーズで安定して動作していた kCLLocationAccuracyNearestTenMeters でも機能しません。
何が起こっているのか、どうすれば問題を解決できるのか、何かヒントはありますか?
iphone - iOS4.0でCurrentLotion(CLLocationManager)のデリゲートメソッドが呼び出されないのはなぜですか?
私はiPhone SDK 4.0を使用しています.現在の場所を取得するために以下のコードを使用しましたが、デリゲートメソッドは自動的に呼び出されません...私のコードは以下のとおりです:
の.hfile
私はインポートを持っています
CoreLocation/CoreLocation.h
委任も
CLLocationManagerDelegate
CLLocationManager *locationManager;
の.mfile
しかし、私はその現在の場所を取得していません......私のデリゲートメソッドは呼び出されていません:
iphone - CLLocationManager - 奇妙なメモリ リーク
いくつかのチュートリアルで説明されているように、CLLocationManager を正しく実装しています。
LocationManager が 2 番目の更新を受信するまで、すべてが正常に機能します。その後、メモリ リークが発生します。
Instrumentsは、リークされたオブジェクトがNSCFTimer、GeneralBlock-16、およびNSCFSetであることを教えてくれます
何か案は?
助けてくれてありがとう
[編集]
locationManager の起動と停止を繰り返すと、更新が早くなったようです。これは、場所の更新が発生するたびに CLLocationManager が新しいタイマーを初期化すると思います...非常に奇妙です...
そして-私のコメントを読む必要はありません-しばらくするとアプリがクラッシュします
[編集]
わかりました - ここにいくつかのコードがあります...
ここで説明されているように、locationManager に別のクラスを使用しています: http://www.vellios.com/2010/08/16/core-location-gps-tutorial/
locationManager.h
locationManager.m
次に、メインクラスで次を呼び出します。
mainFile.h (抜粋)
mainFile.m (抜粋)
それは私をちょっと夢中にさせています:)