你如何在iOS 8和iPhone 6上获得经度和纬度坐标?

时间:2014-11-20 02:36:09

标签: ios objective-c core-location

自iOS 8起,我无法在手机上访问GPS坐标。我做了以下事情:

//由于帖子

,现在已对此进行了编辑以显示工作代码
  1. 在项目创建时添加了CoreLocation.framework。

  2. 在我的.plist文件中添加了以下密钥

    <key>NSLocationAlwaysUsageDescription</key>
    <string></string>
    //<key>NSLocationWhenInUseUsageDescription</key>
    //<string></string>
    
  3. 添加了标题调用

    import <CoreLocation/CoreLocation.h>
    
    @interface ViewController : UIViewController <CLLocationManagerDelegate>
    
    @property (strong, nonatomic) CLLocationManager *locationManager;
    
    @end
    
  4. 已添加到主文件

    //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];
    }
    
  5. 我没有获得授权警报提示,并尝试了许多提供的解决方案,但没有一个有效。有人可以帮助一个经过验证的现场项目吗[解决]

    问题是升级XCODE而不是代码。

2 个答案:

答案 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];
        }

这对我有用。希望也适合你:)