iPhone-在mapkit中更新注释字幕

iPhone-在mapkit中更新注释字幕,iphone,mapkit,mkannotation,reverse-geocoding,Iphone,Mapkit,Mkannotation,Reverse Geocoding,我有一个带有标题和副标题的自定义位置标记。副标题实际上是使用反向地理编码器显示掉针的地址 我有一个按钮,它有一个放下别针的动作。此操作获取用户的位置坐标,然后调用[geocoder start],后者使用反向geocoder获取完整地址并生成自定义注释,然后调用[mapView addAnnotation:customPlacemark] 我的问题是,使用这种顺序,当没有WiFi连接(只有3G或Edge)时,pin码会下降很多,因为获取反向地理编码信息需要watigin 因此,基本上我需要在没有

我有一个带有标题和副标题的自定义位置标记。副标题实际上是使用反向地理编码器显示掉针的地址

我有一个按钮,它有一个放下别针的动作。此操作获取用户的位置坐标,然后调用[geocoder start],后者使用反向geocoder获取完整地址并生成自定义注释,然后调用[mapView addAnnotation:customPlacemark]

我的问题是,使用这种顺序,当没有WiFi连接(只有3G或Edge)时,pin码会下降很多,因为获取反向地理编码信息需要watigin

因此,基本上我需要在没有字幕的情况下输入pin,然后从viewDidAnnotation调用地理编码器,然后在reverseGeocoder中更新字幕,但我不确定如何做到这一点

我想显示不带地址细节的注释,并在从反向地理编码器获取信息时进行更新

有什么建议吗


提前感谢

MKMapView
通过KVO观察其注释的更改。因此,如果您以兼容KVO的方式更新注释的属性,它应该可以正常工作

例如,当反向地理编码器返回注释地址时,您首先宣布
标题
副标题
属性即将更改:

[self willChangeValueForKey:@"title"];
[self willChangeValueForKey:@"subtitle"];
请注意,以上代码假定位于注释类中

然后使用来自地理编码器的信息更新注释。完成后:

[self didChangeValueForKey:@"subtitle"];
[self didChangeValueForKey:@"title"];
请注意,
didChangeValueForKey:
的顺序已更改,因为它们需要正确嵌套,有点像HTML标记


这也适用于
坐标
属性,该属性将导致管脚移动。

MKMapView
通过KVO观察其注释的更改。因此,如果您以兼容KVO的方式更新注释的属性,它应该可以正常工作

例如,当反向地理编码器返回注释地址时,您首先宣布
标题
副标题
属性即将更改:

[self willChangeValueForKey:@"title"];
[self willChangeValueForKey:@"subtitle"];
请注意,以上代码假定位于注释类中

然后使用来自地理编码器的信息更新注释。完成后:

[self didChangeValueForKey:@"subtitle"];
[self didChangeValueForKey:@"title"];
请注意,
didChangeValueForKey:
的顺序已更改,因为它们需要正确嵌套,有点像HTML标记


这也适用于坐标属性,该属性将导致接点移动。

我将放置注释,在属性中保留对它的引用,然后当反向地理编码器回调时,使用对注释的引用并更新其属性。

我将放置注释,在属性中保留对它的引用,然后,当反向地理编码器回调时,使用对注释的引用并更新其属性。

那么在反向地理编码器中,我甚至不需要创建新的customPlacemark对象?使用[self-willChangeValueForKey:@“title”]它如何知道我引用的是我的自定义Placemark注释?非常感谢您的回答如果示例中不清楚,该方法是从annotation类中调用的,因此
self
是添加到地图视图中的注释。您可以在反向地理编码器中找到正确的注释(Placemark),并在实例上调用
willChangeValueForKey:
didChangeValueForKey:
。今晚我将尝试此操作,并告诉您如何操作。好吧,我现在觉得自己像个傻瓜。我正试图得到你提到的正确注释,但我不知道该怎么做。你能给我一个提示吗?当然,试着让注释成为反向地理编码器的委托。这样在反向地理编码器中我甚至不需要创建新的customPlacemark对象?使用[self-willChangeValueForKey:@“title”]它如何知道我引用的是我的自定义Placemark注释?非常感谢您的回答如果示例中不清楚,该方法是从annotation类中调用的,因此
self
是添加到地图视图中的注释。您可以在反向地理编码器中找到正确的注释(Placemark),并在实例上调用
willChangeValueForKey:
didChangeValueForKey:
。今晚我将尝试此操作,并告诉您如何操作。好吧,我现在觉得自己像个傻瓜。我正试图得到你提到的正确注释,但我不知道该怎么做。你能给我一个提示吗?当然,试着让注释成为反向地理编码器的代表。