自iOS 8起,我无法在手机上访问GPS坐标。我做了以下事情:
//由于帖子
,现在已对此进行了编辑以显示工作代码在项目创建时添加了CoreLocation.framework。
在我的.plist文件中添加了以下密钥
<key>NSLocationAlwaysUsageDescription</key>
<string></string>
//<key>NSLocationWhenInUseUsageDescription</key>
//<string></string>
添加了标题调用
import <CoreLocation/CoreLocation.h>
@interface ViewController : UIViewController <CLLocationManagerDelegate>
@property (strong, nonatomic) CLLocationManager *locationManager;
@end
已添加到主文件
//define IS_OS_8_OR_LATER ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0)
- (void)viewDidLoad {
[super viewDidLoad];
self.locationManager = [[CLLocationManager alloc] init];
self.locationManager.delegate = self;
// Both work
//[self.locationManager requestWhenInUseAuthorization];
//if(IS_OS_8_OR_LATER) {
[self.locationManager requestAlwaysAuthorization];
//}
self.locationManager.desiredAccuracy = kCLLocationAccuracyBest;
[self.locationManager startUpdatingLocation];
}
我没有获得授权警报提示,并尝试了许多提供的解决方案,但没有一个有效。有人可以帮助一个经过验证的现场项目吗[解决]
问题是升级XCODE而不是代码。
答案 0 :(得分:0)
在plist文件的这一部分中,您需要提供一个实际的字符串:
<key>NSLocationWhenInUseUsageDescription</key>
<string></string>
那里你不能有一个空字符串。
答案 1 :(得分:0)
将此添加到您的plist
<key>NSLocationAlwaysUsageDescription</key>
<string></string>
<key>NSLocationWhenInUseUsageDescription</key>
<string></string>
这段代码
#define IS_OS_8_OR_LATER ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0)
if(IS_OS_8_OR_LATER) {
[locationManager requestAlwaysAuthorization];
}
这对我有用。希望也适合你:)