2012-08-30 43 views
4

我編寫了一個簡單的程序,它使用Cocoa位置服務來獲取用戶的當前位置。它在MacBook Pro上沒有問題。但是,它不在MacBook Air上。Mac OS上的命令行程序中的位置服務

我剩下一個Operation could not be completed. (kCLErrorDomain error 1.)的代碼,還有很多事情我已經嘗試解決它(例如設置權限)。在隱私設置中勾選應用程序的複選框以啓用應用程序的位置服務後,只要啓動應用程序,它就會消失。

要初始化服務,我使用CLLocationManager類的startUpdatingLocation方法。

有什麼辦法可以解決這個問題嗎?

+0

本地化和位置服務是不同的東西。我假設你在談論後者。 – JeremyP

+0

我是,感謝您的更正。 – thax

+0

CoreLocation需要OS X上的WiFi。MacBook Air是否連接到WiFi網絡? – Felix

回答

2

答案很簡單 - 我忘了在/ Library/LaunchDaemons /中的plist文件運行的可執行文件上設置權限。一個簡單的chmod 007解決了這個問題。

1

kCLErrorDomain error 1意味着您被拒絕訪問位置服務。最有可能的是,他們已被禁用。請參閱disabling location services。如果您轉到系統偏好設置 - >安全 - >隱私,則可以選中啓用位置服務框。另外,類方法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; 

希望能以某種方式幫助你。除此之外,我唯一的建議,因爲我自己沒有使用位置服務,你是通過閱讀文檔,並希望找到一些幫助。

相關問題