Xcode 在我知道具有该属性的对象上找不到属性

Xcode 在我知道具有该属性的对象上找不到属性,xcode,mapkit,cllocationmanager,Xcode,Mapkit,Cllocationmanager,我开始对MapKit感到非常失望。首先,我有 if (manager.authorizationStatus == kCLAuthorizationStatusAuthorizedWhenInUse) { } 因为它说在“CLLocationManager*”类型的对象上找不到属性“authorizationStatus”。认真地因为根据Apple文档,我不仅可以确定CLLocationManager应该有一个authorizationStatus属性,而且在我键入该属性时,它还会自动完成该属

我开始对MapKit感到非常失望。首先,我有

if (manager.authorizationStatus == kCLAuthorizationStatusAuthorizedWhenInUse) {
}
因为它说在“CLLocationManager*”类型的对象上找不到属性“authorizationStatus”。认真地因为根据Apple文档,我不仅可以确定CLLocationManager应该有一个authorizationStatus属性,而且在我键入该属性时,它还会自动完成该属性。我真的不知道现在该怎么办

除此之外,我还有

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键
nslocationwhenUsageDescription
NSLocationAlwaysUsageDescription
。。。其中只有一个拼写稍有错误。如果plist条目丢失或拼写错误,Apple API不会进行调用,并且不会警告您


难以置信。

+authorizationStatus
是CLLocationManager上的类方法,而不是属性。您可以将其调用为:

if ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusAuthorizedWhenInUse) {
    //...
}

这是通过在方法名称前面使用
+
来表示的(而不是
-
,这将指示实例方法,或缺少通常伴随属性的符号)。

+authorizationStatus
是CLLocationManager上的类方法,而不是属性。您可以将其调用为:

if ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusAuthorizedWhenInUse) {
    //...
}

这是通过在方法名称前面使用
+
来表示的(而不是
-
,这将指示实例方法,或者缺少通常伴随属性的符号)。

听起来像是一个Xcode错误,不幸的是:/may?也是,你知道为什么不需要我的授权吗?我会的,当然苹果需要解决iOS SDK8的问题。或者我只是一个糟糕的程序员,但我在使用SDK 8时遇到了很多我在使用SDK 7时没有遇到的障碍听起来像是一个Xcode错误,不幸的是:/may?另外,你知道为什么不需要我的授权吗?我会这么做的,当然苹果需要解决iOS SDK8的错误。或者我只是一个差劲的程序员,但是我在使用SDK 8时遇到了很多我在使用SDK 7时没有遇到的障碍