Objective c Mac OS上命令行程序中的位置服务

Objective c Mac OS上命令行程序中的位置服务,objective-c,macos,cllocationmanager,launchd,Objective C,Macos,Cllocationmanager,Launchd,我编写了一个简单的程序,它使用Cocoa定位服务获取用户的当前位置。它在MacBook Pro上工作没有问题。然而,它并不在MacBookAir上 我的操作无法完成。(kCLErrorDomain错误1。)code,我已经尝试了很多方法来修复它(例如设置权限)。在隐私设置中勾选应用程序的复选框以启用应用程序的位置服务时,它会在我启动应用程序时立即消失 要初始化服务,我使用CLLocationManager类的startUpdatingLocation方法 有什么办法可以解决这个问题吗?表示您被拒

我编写了一个简单的程序,它使用Cocoa定位服务获取用户的当前位置。它在MacBook Pro上工作没有问题。然而,它并不在MacBookAir上

我的
操作无法完成。(kCLErrorDomain错误1。)
code,我已经尝试了很多方法来修复它(例如设置权限)。在隐私设置中勾选应用程序的复选框以启用应用程序的位置服务时,它会在我启动应用程序时立即消失

要初始化服务,我使用CLLocationManager类的
startUpdatingLocation
方法

有什么办法可以解决这个问题吗?

表示您被拒绝访问定位服务。最有可能的是,他们已经残疾。看见如果您转到系统首选项->安全->隐私,则可以在“启用位置服务”框中勾选。另外,类方法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;

希望这对你有所帮助。除此之外,我唯一的建议是,因为我自己没有使用过定位服务,所以请您仔细阅读文档,并希望找到一些有用的东西。

答案很简单-我忘了设置由/Library/LaunchDaemons/中的plist文件运行的可执行文件的权限。一个简单的chmod 007解决了这个问题。

本地化和定位服务是不同的事情。我想你说的是后者。是的,谢谢你的更正。CoreLocation需要OS X上的WiFi。MacBook Air是否连接到WiFi网络?是的,很遗憾,它已关闭。