2009-08-22 14 views
0

Ich habe diese Unterklasse von CLLocation definiertFehler beim Setzen Eigenschaft auf CLLocation Unterklasse

MyLocation.h

@interface MyLocation: CLLocation { 
    NSString *datum; 
    NSString *ellipsoid; 
} 

@property(nonatomic,retain) NSString *ellipsoid; 
@property(nonatomic,retain) NSString *datum; 

MyLocation.m

@synthesize datum,ellipsoid; 

Jetzt bekomme ich eine CLLocation Instanz durch den Ort Managerdelegierter

  • (void) locationManager: (CLLocationManager *) Manager didUpdateToLocation: (CLLocation *) newLocation fromLocation: (CLLocation *) oldLocation { //self.myPosition ist ein MyLocation myPosition; self.myPosition = newLocation; [myPosition setDatum: @ "WGS 84"]; [myPosition setEllipsoid: @ "WGS 84"]; }

Wenn ich die self.myPosition = newLocation erhalte ich eine abgefangene Ausnahme und es stirbt

ich auch auf diese Weise mit gleichen Ergebnisse versucht haben:

self.myPosition = (MyLocation *)newLocation; 

Antwort

0

newLocation ist nicht Eine Instanz der Ur-Subklasse, so dass diese Zuweisung oder Casting einen Fehler auslöst, weil es eine ungültige Umwandlung ist, sollten Sie die Werte der ur-Unterklasse, die Sie wollen, aus dem cllocation-Objekt so etwas wie

self.myPosition=[[MyLocation alloc] initWithCoordinate:newLocation.coordinate] 

und so weiter

Verwandte Themen