1

我在 Xcode 上使用 MapView,一切正常,但是当我添加以下行时

mapView.delegate = self;

到 ViewController.m,我得到了错误

从不兼容的类型“ViewController *const __strong”分配给“id<MKMapViewDelegate>”

这是我的代码:

视图控制器.m:

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController
@synthesize mapView;

- (void)viewDidLoad
{
    [super viewDidLoad];
    mapView.showsUserLocation = YES;
    mapView.delegate = self; //The line I added that creates the error
    // Do any additional setup after loading the view, typically from a nib.
}

@end

视图控制器.h

#import <UIKit/UIKit.h>
#import <MapKit/MapKit.h>

@interface ViewController : UIViewController {
    MKMapView *mapview;
}
@property (weak, nonatomic) IBOutlet MKMapView *mapView;

@end
4

2 回答 2

2

您需要声明您的类实现了 MKMapViewDelegate 方法。在您的 ViewController.h 头文件中,更改该行

@interface ViewController : UIViewController {

@interface ViewController : UIViewController <MKMapViewDelegate> {
于 2013-08-25T14:31:02.113 回答
1

您需要声明您响应MKMapViewDelegate电话。

为此,只需更新相应类(ViewController.h在您的示例中)的头文件,如下所示:

@interface ViewController : UIViewController <MKMapViewDelegate> {
于 2013-08-25T14:31:17.210 回答