【发布时间】:2018-01-05 01:19:23
【问题描述】:
在我的方法中,每次移动地图标记时都会绘制折线。 根据 Google Maps iOS 文档,将折线设置为 nil 将删除折线。
当我在标记移动触发后这样做时,折线仍然存在。
根据此处的其他帖子,只有当您拥有要删除的行的指针地址时,才能删除 GMSPolyline,因为即使全局声明该 api 仍然每次都会创建另一个实例。
我不太了解指针或地址。如何获得指针地址,一旦获得,如何通过该地址引用对象?
我可以这样获取地址:
NSString *addressRight = [NSString stringWithFormat:@"%p",polylineRightPreview];
每次调用该方法时,即使变量是全局声明的,我每次都会为 GMSPolyline 获得不同的地址:
0x600000d36f80 0x620000d2dfc0 0x608001538560
我基本上需要这个:
GMSPolyline *polyline = nil;
但它必须引用最后创建的指针的确切地址。你是怎么设置的
0x600000d36f80 to nil?
如果你只是调用 polyline = nil 什么都不会发生,因为一旦它被添加到地图中,它就有自己的指针地址。此外,调用地图清除函数也没有什么用处,因为它不适合移除所有其他地图对象并重新绘制它们。
【问题讨论】:
标签: ios google-maps pointers