ios – iPhone模拟器上的海拔高度始终为零

ios – iPhone模拟器上的海拔高度始终为零,第1张

概述我正在尝试在 Xcode和Simulator上开发一个高度计,但它总是在海面以上的高度返回0. 我不明白为什么,我已经在模拟器上尝试了很多地方. 我的代码是这样的: - (void)viewDidLoad{ [super viewDidLoad]; // Do any additional setup after loading the view. _mapView.de 我正在尝试在 Xcode和Simulator上开发一个高度计,但它总是在海面以上的高度返回0.
我不明白为什么,我已经在模拟器上尝试了很多地方.

我的代码是这样的:

- (voID)vIEwDIDLoad{    [super vIEwDIDLoad];    // Do any additional setup after loading the vIEw.    _mapVIEw.delegate = self;    _locationManager = [[CLLocationManager alloc] init];    _locationManager.desiredAccuracy = kCLLocationAccuracyBest;    _locationManager.pausesLocationUpdatesautomatically = YES;    _locationManager.delegate = self;    firstLocation = YES;   checkUserLocation = NO;}- (voID) locationManager:(CLLocationManager *)manager dIDUpdateLocations:(NSArray *)locations{CLLocation *location = [locations lastObject];lastLocation = location.coordinate;_latitudeLabel.text = [Nsstring stringWithFormat:@"Current latitude: %f",location.coordinate.latitude];_longitudeLabel.text = [Nsstring stringWithFormat:@"Current longitude: %f",location.coordinate.longitude];_altitudeLabel.text = [Nsstring stringWithFormat:@"Current altitude: %f m",location.altitude];}

我的错误在哪里?

解决方法 您的代码没有任何问题,因为您使用的是模拟器.

确定高度需要具有GPS功能的设备,并且您还需要在该设备上使用GPS才能获得它(即使在支持GPS的设备上,仅wifi位置也不会正确报告高度). iOS模拟器没有这些功能,因此高度不准确.您需要使用带有GPS的真实设备来获取高度测量值.

如果要模拟具有高度的CLLocation,可以创建CLLocation对象并自行传递高度:

- (ID)initWithCoordinate:(CLLocationCoordinate2D)coordinate    altitude:(CLLocationdistance)altitude    horizontalAccuracy:(CLLocationAccuracy)hAccuracy    verticalAccuracy:(CLLocationAccuracy)vAccuracy    timestamp:(NSDate *)timestamp

Altitude是一个只读属性,因此您需要自己创建一个新的CLLocation对象,而不是在委托回调中收到CLLocation对象时手动更改它.

总结

以上是内存溢出为你收集整理的ios – iPhone模拟器上的海拔高度始终为零全部内容,希望文章能够帮你解决ios – iPhone模拟器上的海拔高度始终为零所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1113846.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存