Mapbox iOS SDK设置显示位置:FALSE导致崩溃
我有一个具有特定平铺区域的应用程序。如果用户不在该区域,并试图在地图上显示其位置,我希望应用程序拒绝该请求并显示警报。我认为最好的方法是:Mapbox iOS SDK设置显示位置:FALSE导致崩溃,mapbox,Mapbox,我有一个具有特定平铺区域的应用程序。如果用户不在该区域,并试图在地图上显示其位置,我希望应用程序拒绝该请求并显示警报。我认为最好的方法是: 用户点击按钮,将userTrackingMode设置为RMUserTrackingModeFollow并将showsuserLocation设置为TRUE 在map委托中,我响应mapView:didUpdateUserLocation:,并检查以确保用户的位置位于mapView的tilesource边界框内 如果用户的位置在边界框之外,我将userTrac
userTrackingMode
设置为RMUserTrackingModeFollow
并将showsuserLocation
设置为TRUE李>
mapView:didUpdateUserLocation:
,并检查以确保用户的位置位于mapView的tilesource边界框内userTrackingMode
设置为RMUserTrackingModeNone
并将showsuserslocation
设置为FALSEuserTrackingMode
设置为RMUserTrackingModeNone
时,没有什么不好的事情发生。但是,当我将showsuserLocation
设置为FALSE时,总会出现类似以下情况的崩溃:
***由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“***-[\uu NSSetM addObject:]:对象不能为零”
***第一次抛出调用堆栈:
(
0 CoreFoundation 0x028291e4例外预处理+180
1 libobjc.A.dylib 0x025a88e5 objc_异常_抛出+44
2 CoreFoundation 0x028c8a7e-[\uu NSSetM addObject:][638
3 IMAMODULARMAPAP 0x00243b02-[RMMapView ADDNATION:][146
4 IMAModuleARMAPAP 0x00247bdb-[RMMapView位置管理器:didUpdateToLocation:fromLocation:][7115
5 CoreLocation 0x00c7355e CLLocation Coordination2 DGETDISTANCEFrom+18294
6芯位置0x00c72af4 CLLOCATION坐标2 DGETDISTANCEFOM+15628
7 CoreLocation 0x00c6fe40 CLLocation Coordination2DGETDISTANCEFrom+4184
…等
为什么这会使应用程序崩溃?是否有其他地方我应该检查用户的位置是否在地图中?我不建议更改
mapView.userTrackingMode
,如果您不打算使用地图始终移动的默认行为来实际跟踪用户。相反,我会将其保留为RMUserTrackingModeNone
,实现您自己的CLLocationManager
,并在对用户位置的代理回调中,检查它们是否满足您的条件。如果满足,我会将您自己的RMANotation
添加到用户的映射中,而不是依赖默认的RMUserLocation
注释。您可以从其实现中借用(在该类中以及RMMapView
中)使其看起来正确。发现异常的最佳方法是设置一个异常断点。转到左侧的断点选项卡,左下角是加号。您将在那里看到菜单项。是的,我知道崩溃发生的方式和位置(在SDK代码中)。我的问题更具体一些,关于SDK,以及我应该在哪里/如何测试用户的位置是否在中的tilesource的边界框内,因为它正在崩溃。发布showsuserLocation的SDK头声明如何?如果您将其设置为FALSE(which==NO==0),并且它需要一个对象(如@0),那么如果SDK将该标量值放入NSMutableSet中,您就会看到确切的崩溃。@DanhshowsuserLocation
是一个布尔属性,它的set方法被覆盖,以包括一个进程来启动应用程序内的起始用户跟踪。同样,这是一个试图找出我需要通过什么进程来预处理的问题使用SDK基于区域进行用户跟踪-不专门检查SDK中的bug。我认为我能帮助您的最好方法是建议重写以下问题:标题应该是:“如何在Mabbox中排除区域跟踪”。正文应该是:“这是我为此编写的代码,但它不起作用。事实上,它在我的源代码中的这一行崩溃了。请将ios标记放回,并将崩溃日志替换为一行,该行显示“崩溃日志在集合中显示零插入”。好的,因此没有内置的“批准”功能。”用户的位置是否对地图有效?我想这排除了用户在不创建自定义GPS气泡的情况下对任何非全局的平铺集进行跟踪的可能性。否则它只会移动到空白。不,没有,但当你这样说时,这听起来是一个非常有用的功能。我可以在RMMapViewDelegate
中看到一个回调添加以支持此类功能。要打开票证和/或拉取请求吗?