我写了一个简单的程序,它使用Cocoa位置服务来获取用户的当前位置。它在MacBook Pro上没有问题。但是,它不适用于MacBook Air。
我留下了Operation could not be completed. (kCLErrorDomain error 1.)
代码,而且我已经尝试过多次修复它(例如设置权限)。勾选隐私设置中的应用程序复选框以启用应用程序的位置服务后,它会在我启动应用程序后立即消失。
要初始化服务,我使用CLLocationManager类的startUpdatingLocation
方法。
有没有办法解决这个问题?
答案 0 :(得分:2)
答案是微不足道的 - 我忘了设置由/ Library / LaunchDaemons /中的plist文件运行的可执行文件的权限。一个简单的chmod 007解决了这个问题。
答案 1 :(得分: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;
希望以某种方式帮助你。除了那个我唯一的建议,因为我自己没有使用过位置服务,你是否阅读了文档并希望找到有用的东西。