mapView 中的用户位置未显示在多个模拟器设备(MapKit)上
Posted
技术标签:
【中文标题】mapView 中的用户位置未显示在多个模拟器设备(MapKit)上【英文标题】:User location in mapView doesn't show on several simulator devices (MapKit) 【发布时间】:2015-05-26 00:28:12 【问题描述】:我已经实现了一个 mapView,它可以找到用户位置并显示它,但问题是它在 ios 模拟器中的 iPhone 4S、iPhone 5、iPhone 5S 和 iPhone 6 Plus 上不起作用,只能在 iPhone 上运行6. 奇怪的是它可以在我真正的 iPhone 5S 设备上运行。
这可能是模拟器问题,还是会在真实设备上发生?
这是我收到的警告:
尝试在不提示位置授权的情况下启动 MapKit 位置更新。必须先调用 -[CLLocationManager requestWhenInUseAuthorization] 或 -[CLLocationManager requestAlwaysAuthorization]。
【问题讨论】:
【参考方案1】:尝试在不提示位置授权的情况下启动 MapKit 位置更新。必须先调用 -[CLLocationManager requestWhenInUseAuthorization] 或 -[CLLocationManager requestAlwaysAuthorization]
这里最难的是什么?在您的应用明确要求授权使用用户的位置之前,您的地图视图无法显示用户的位置。错误消息甚至会向您显示方法,您必须调用其中一种方法才能做到这一点!怎么可能更有帮助?做它告诉你的事。
请注意,您不仅必须请求授权,还必须接收授权。
【讨论】:
它不要求它。它确实在真实设备上......:/ 重置模拟器。您可能已经拒绝访问 - 因此您无法再收到请求。或者切换到“设置”并在那里提供访问权限。 这里是工作代码:github.com/mattneub/Programming-iOS-Book-Examples/blob/master/… 我试过重置模拟器,但还是不行。此外,iPhone 6 甚至没有要求它,而是显示了位置:/ 在此处查看我的回答,描述您的逻辑必须是:***.com/a/30495310/341994【参考方案2】:我最终解决了我自己的问题。
我刚刚在 viewDidLoad 中添加了这行代码:
[self.locationManager requestWhenInUseAuthorization];
这很有帮助:http://nevan.net/2014/09/core-location-manager-changes-in-ios-8/
【讨论】:
以上是关于mapView 中的用户位置未显示在多个模拟器设备(MapKit)上的主要内容,如果未能解决你的问题,请参考以下文章