将UIMapView委托设置为self会触发警告,但有效

时间:2014-06-29 01:42:43

标签: ios objective-c mkmapview mapkit

在我的项目中,我有一个我添加注释的MapView。我需要这些注释有不同的图像,所以我使用- (MKAnnotationView *) mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>) annotation方法。但是,要实现此功能,我需要将MapView的委托设置为self。所以我在viewDidLoad函数中使用了这一行:

self.viewMap.delegate = self;

这可以正常工作,但XCode警告我这条消息:

Assigning to 'id<MKMapViewDelegate>' from incompatible type 'ViewController *const__strong'

我猜我不会以正确的方式解决这个问题,这就是为什么会有警告的原因。那么我做错了什么?

1 个答案:

答案 0 :(得分:3)

您的ViewController类 - 您可能会考虑将其重命名为更具描述性的类 - 需要在其界面中声明与MKMapViewDelegate的一致性:

@interface ViewController : UIViewController <MKMapViewDelegate>

// stuff

@end