属性类型与访问者mkmapview的类型不匹配

时间:2013-04-01 14:16:52

标签: iphone objective-c properties mkmapview accessor

我更像是一个java人,我刚刚开始使用Objective C和iPhone编程。

我一直在尝试使用此代码(Xcode iPhone编程)让iPhone在地图类型(分段控制按钮)之间切换,但它继续投掷“类型属性'mymap'与访问者类型'setMymap'不匹配” :

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

@interface ViewController : UIViewController {
    MKMapView * mymap;
}
@property (nonatomic, readonly) MKMapView * mymap;
-(IBAction)setMymap:(id)sender;
-(IBAction)getLocation;
@end

@implementation ViewController
@synthesize mymap;
-(IBAction)getLocation {
    mymap.showsUserLocation = YES;
}
-(IBAction)setMymap:(id)sender {
    switch (((UISegmentedControl*)sender).selectedSegmentIndex) {
        case 0:
            mymap.mapType = MKMapTypeStandard;
            break;
        case 1:
            mymap.mapType = MKMapTypeSatellite;
            break;
        case 2:
            mymap.mapType = MKMapTypeHybrid;
            break;
    }
}
....

1 个答案:

答案 0 :(得分:3)

将setMap:方法重命名为mapSelectorAction:或者类似的东西。 Cocoa中的任何方法都以set开头,后跟属性的名称,并且接受一个参数,“needs”是该属性的setter方法。

正确的名字在Cocoa中非常重要,但一般来说是Objective-C。查看Apple的style guide了解更多信息。