我已经定义了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 回答
newLocation不是你的子类的实例,所以做那个赋值或者转换会抛出一个错误,因为它是一个无效的转换,你应该从cllocation对象中找到你想要的ur子类的值
等等