4th*_*ace 3 iphone cocoa-touch mapkit
我想为用户的位置显示蓝色脉冲点.我这样做:
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation{
//some other stuff here
[self.mapView setShowsUserLocation:YES];
}
Run Code Online (Sandbox Code Playgroud)
但我最终得到了
-[MKUserLocation establishment]: unrecognized selector sent to instance 0x125e90
Run Code Online (Sandbox Code Playgroud)
我应该以其他方式这样做吗?
- 编辑 -
我也这样做,这是我最终获得上述异常的地方:
- (MKAnnotationView *) mapView:(MKMapView *)_mapView viewForAnnotation:(AddressNote *) annotation{
if(annotation.establishment != nil){
//do something}
Run Code Online (Sandbox Code Playgroud)
establishment是我在AddressNote上的一个自定义类.当establishment具有值时,会发生异常.如果我没有设置ShowsUserLocation,一切正常,但当然,我没有看到用户位置.
yon*_*nel 15
当__CODE__请求时,您需要检查给定的注释是否与当前用户位置相对应.如果是,则返回nil,否则返回您自己的正常annoationView.
__CODE__
__PRE__
__CODE__
[编辑]另一种方法是检查注释类的类型:
__CODE__
__PRE__
__CODE__
不确定实际问题是什么,但您不需要在每次更新时都这样做.在创建之后设置一次mapView,您应该开展业务.
mapView.showsUserLocation = YES;
Run Code Online (Sandbox Code Playgroud)
您可能需要将地图缩放到用户实际所在的区域,以使点可见.