CLLocationManager不定义requestAlwaysAuthorization或requestWhenInUseAuthorization

时间:2015-04-04 22:26:21

标签: ios ios7

我正在尝试对用户的位置状态进行验证。我实例化了CLLocationManager,每当我尝试调用requestAlwaysAuthorization或requestWhenInUse时,我都没有得到自动完成值,即使我完成输入,我也会得到一个没有可见的接口,CLLocationManager定义了请求方法。我在CLLocationManager.h中验证了这一点,果然他们不在那里。只有requestStateForRegion选择器。我正在使用谷歌地图API,每当我通过谷歌API获取位置时,它确实提示我所以功能正在模拟器上工作,只是不确定为什么我不能直接通过CLLocationManager

这是我的视图控制器的.h

#import <UIKit/UIKit.h>

#import <GoogleMaps/GoogleMaps.h>

#import "EVTMapCanvas.h"

@import CoreLocation;

@interface EVTEventsViewController : UIViewController <CLLocationManagerDelegate>

@end

2 个答案:

答案 0 :(得分:1)

您的代码对我来说很好。我认为这是xcode的问题,而不是你的问题。

尝试:

  • 清洁项目(cmd + shift + K)
  • 清理构建文件夹(cmd + shift + alt + K)
  • 清理衍生数据(Windows - &gt;管理器或Windows - &gt; Project for Xcode 6 b4)
  • 重启Xcode

现在应该修复。

答案 1 :(得分:0)

这些专门的位置授权方法是iOS 8 SDK的一部分。如果您使用的是没有iOS 8 SDK的旧版Xcode,您将不会在标题中看到任何这些方法,也不会看到任何自动完成。如果您需要这些新方法,我建议将Xcode升级到当前版本并获得对最新SDK的访问权。

注意,截至2月份,所有新应用都必须使用iOS 8 SDK,截至6月,现有应用的任何新更新都必须使用新的SDK。有关详细信息,请参阅64-bit and iOS 8 Requirements for App Updates