将Objective-C中的指针地址设置为nil

时间:2017-07-28 21:13:26

标签: ios google-maps pointers

enter image description here

在我的方法中,每次移动地图标记时都会绘制折线。 根据Google Maps iOS文档设置,折线为nil将删除折线。

当我在标记移动触发后执行此操作时,折线保持不变。

根据此处的其他帖子,只有你想要删除的行的指针地址才能删除GMSPolyline,因为即使是全局声明api仍然每次创建另一个实例。

我对指针或地址了解不多。如何得到指针地址,一旦你得到它,你如何通过该地址引用该对象?

我可以得到这样的地址:

NSString *addressRight = [NSString stringWithFormat:@"%p",polylineRightPreview];

每次调用该方法时,即使变量是全局声明的,每次GMSPolyline都会得到一个不同的地址:

0x600000d36f80   0x620000d2dfc0    0x608001538560

我基本上需要这个:

GMSPolyline *polyline = nil;

但它必须引用最后一个创建的确切指针地址。你如何设置

0x600000d36f80 to nil?

如果你只是调用polyline = nil,就不会发生任何事情,因为一旦它被添加到地图中,就会有它自己的指针地址。此外,调用map clear函数是没有用的,因为删除所有其他map对象并重绘它们是不合适的。

1 个答案:

答案 0 :(得分:1)

在阵列中添加折线对象&当你想删除那些折线时,迭代数组&设置

polyline.map = nil