5

Cocoa 位置情報サービスを使用してユーザーの現在位置を取得する簡単なプログラムを作成しました。MacBook Pro では問題なく動作します。ただし、MacBook Air にはありません。

コードが残っていて、Operation could not be completed. (kCLErrorDomain error 1.)それを修正するためにすでに多くのことを試みました (たとえば、アクセス許可の設定)。アプリケーションの位置情報サービスを有効にするためにプライバシー設定でアプリケーションのチェックボックスをオンにすると、アプリケーションを起動するとすぐに消えます。

サービスを初期化するにstartUpdatingLocationは、CLLocationManager クラスのメソッドを使用します。

問題を解決する方法はありますか?

4

2 に答える 2

2

答えは簡単です。/Library/LaunchDaemons/ の plist ファイルによって実行される実行可能ファイルにアクセス許可を設定するのを忘れていました。簡単な chmod 007 で問題が解決します。

于 2012-09-07T20:01:21.540 に答える
1

kCLErrorDomain エラー 1は、位置情報サービスへのアクセスが拒否されたことを意味します。ほとんどの場合、それらは無効になっています。位置情報サービスの無効化を参照してください。[システム環境設定] -> [セキュリティ] -> [プライバシー] に移動すると、[位置情報サービスを有効にする] チェックボックスがオンになります。また、クラス メソッドの authorizationStatus は、位置情報サービスへの現在のアクセスのステータスを返します。その状態は、次の列挙型として定義されます。

typedef enum {
   kCLAuthorizationStatusNotDetermined = 0, //user hasn't allowed/denied
   kCLAuthorizationStatusRestricted, //app level restriction, cannot be lifted by user
   kCLAuthorizationStatusDenied, //explicit user denial, or disabled in settings
   kCLAuthorizationStatusAuthorized //self explanitory
} CLAuthorizationStatus;

何らかの形でお役に立てば幸いです。それ以外の私の唯一のアドバイスは、私自身は位置情報サービスを使用したことがないため、ドキュメントを読んで、うまくいけば役立つものを見つけることです.

于 2012-09-01T22:05:34.300 に答える