2013-04-01 3 views
2

Je suis plus une personne java et je commence tout juste avec la programmation Objective C et iPhone. J'ai essayé ce code pour (programmation iPhone Xcode) pour faire basculer l'iPhone entre les types de carte (boutons de contrôle segmentés) mais il continue à lancer "type de propriété 'mappemonde' ne correspond pas au type d'accesseur 'setMymap' ":Type de propriété ne correspond pas au type d'accesseur mkmapview

#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; 
    } 
} 
.... 

Répondre

3

Renommez votre méthode setMap: en mapSelectorAction: ou quelque chose comme ça. Toute méthode dans Cocoa qui commence par set suivie du nom d'une propriété, et en prenant un argument, "needs" doit être une méthode setter pour cette propriété.

Les noms corrects sont très importants dans Cocoa en particulier mais Objective-C en général. Consultez Apple style guide pour plus d'informations.

+0

merci! il compile bien –

Questions connexes