• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - startUpdatingLocation 不再在 XCode 6.1 中工作

[复制链接]
菜鸟教程小白 发表于 2022-12-13 02:51:38 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我什至无法让最简单的位置更新代码工作。我有一个位置应用程序运行良好一年多,现在当我尝试编译和运行它(升级到 xcode 6.1 并且没有更改代码之后),在调用 startUpdatingLocation 之后,didUpdateLocations 回调永远不会触发,我可以看到 gps 指示器从未出现在电池指示器旁边。 我已经开始了一个新的测试项目,除了尝试注册位置更新之外什么都不做,但结果仍然相同:设备或模拟器上没有位置更新。 下面是测试项目的单 View Controller 的代码:

//ViewController.h
#import <UIKit/UIKit.h>
#import <CoreLocation/CoreLocation.h>

@interface ViewController : UIViewController <CLLocationManagerDelegate>
{

}

@property (strong, nonatomic) CLLocationManager* locationManager;

@end


//ViewController.m
#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    self.locationManager = [[CLLocationManager alloc]init];
    self.locationManager.delegate = self;
    self.locationManager.desiredAccuracy = kCLLocationAccuracyBest;

    [self.locationManager requestWhenInUseAuthorization];

    [self.locationManager startUpdatingLocation];
}

- (void)locationManagerCLLocationManager *)manager didUpdateToLocationCLLocation *)newLocation fromLocationCLLocation *)oldLocation
{
    NSLog(@"got a location");
}

-(void)locationManagerCLLocationManager *)manager didFailWithErrorNSError *)error
{
    NSLog(@"Error: %@",error.description);
}
-(void)locationManagerCLLocationManager *)manager didUpdateLocationsNSArray *)locations
{
     NSLog(@"got a location");
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
}

@end

如果拥有最新版本的 xcode 的人可以创建一个这样的项目,该项目除了接收位置更新之外什么都不做,验证它是否有效,然后完整地发布代码,那就太棒了。我已尝试将内容添加到 plist 文件以及类似问题的所有其他补救措施均无济于事。



Best Answer-推荐答案


是的,新版本中发生了一些变化,这可能会让人头疼。我遇到了同样的问题,这是为我解决的线程here .

你需要添加这些行 info.plist:

<key>NSLocationWhenInUseUsageDescription</key>
<string>The spirit of stack overflow is coders helping coders</string>

<key>NSLocationAlwaysUsageDescription</key>
<string>I have learned more on stack overflow than anything else</string>

并确保在尝试更新用户位置之前调用 [CLLocationManager requestWhenInUseAuthorization][CLLocationManager requestAlwaysAuthorization]

关于ios - startUpdatingLocation 不再在 XCode 6.1 中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26577645/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap