Ошибка установки свойства в подклассе CLLocation - PullRequest
0 голосов
/ 23 августа 2009

Я определил этот подкласс CLLocation

MyLocation.h

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

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

MyLocation.m

@synthesize datum,ellipsoid;

Теперь я получаю экземпляр CLLocation через делегата менеджера местоположения

  • (void) locationManager: (CLLocationManager *) manager didUpdateToLocation: (CLLocation *) newLocation fromLocation: (CLLocation *) oldLocation { //self.myPosition - это MyLocation myPosition; self.myPosition = newLocation; [myPosition setDatum: @ "WGS 84"]; [myPosition setEllipsoid: @ "WGS 84"]; }

Когда я делаю self.myPosition = newLocation, я получаю НЕПРЕРЫВНОЕ ИСКЛЮЧЕНИЕ, и он умирает

Я тоже пробовал таким же образом:

self.myPosition = (MyLocation *)newLocation;

1 Ответ

0 голосов
/ 23 августа 2009

newLocation не является экземпляром вашего подкласса, поэтому выполнение этого присваивания или приведения приводит к ошибке, поскольку это недопустимое приведение, вы должны устанавливать значения подкласса ur, которые вы хотите получить от объекта cllocation, например,

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

и т. Д.

...