1

私はXcodeでMapViewを使用していましたが、すべて正常に動作していましたが、次の行を追加すると

mapView.delegate = self;

ViewController.m に、エラーが発生します

互換性のない型 'ViewController *const __strong' から 'id<MKMapViewDelegate>' に割り当てています

これが私のコードです:

ViewController.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

ViewController.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 に答える