【发布时间】:2014-12-19 21:08:51
【问题描述】:
我开始对 MapKit 感到非常沮丧。首先,我有
if (manager.authorizationStatus == kCLAuthorizationStatusAuthorizedWhenInUse) {
}
哪个未能构建,因为它说“在'CLLocationManager *'类型的对象上找不到属性'authorizationStatus'。严重吗?因为我不仅确定CLLocationManager应该具有根据Apple文档@的authorizationStatus属性987654321@ 但它也会在我键入时自动完成属性。我现在完全不知道该怎么做。
最重要的是,我有
if (!manager) {
NSLog(@"manager created in viewDidLoad");
manager = [[CLLocationManager alloc]init];
manager.delegate = self;
[manager requestWhenInUseAuthorization];
NSLog(@"manager is supposed to ask for permission");
}
两个 NSLog 语句都被调用,但是没有请求授权,所以我得到一个错误。是的,我还在我的 plist 文件中添加了必要的密钥字符串,因为该应用程序正在我的手机上运行,但在其他人的手机上我收到了这个错误。唯一可能的解释是我在请求许可之前尝试使用 MapKit,但我已经彻底检查过,没有发现类似的东西。它甚至没有显示请求许可的警告框。
如果有人可以帮助解决这些错误,将不胜感激。在那之前我无事可做,因为我已经尝试了一切。
编辑:我发现了问题所在。我有两个 plist 键 NSLocationWhenInUseUsageDescription 和 NSLocationAlwaysUsageDescription ...只有其中一个稍微拼写错误。如果 plist 条目丢失或拼写错误,Apple API 不会进行调用并且不会警告您。
难以置信。
【问题讨论】:
标签: xcode mapkit cllocationmanager