首页 文章

在CLLocation子类上设置属性时出错

提问于
浏览
0

我已经定义了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时,我得到一个UNCAUGHT EXCEPTION并且它会死掉

我也尝试过这种方式,结果相同:

self.myPosition = (MyLocation *)newLocation;

1 回答

  • 0

    newLocation不是你的子类的实例,所以做那个赋值或者转换会抛出一个错误,因为它是一个无效的转换,你应该从cllocation对象中找到你想要的ur子类的值

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

    等等

相关问题