【问题标题】:CLLocation object in swift with latitude and longitude带有纬度和经度的 CLLocation 对象
【发布时间】:2017-11-12 09:50:56
【问题描述】:

我会尝试设置 CLLocation 对象的纬度和经度属性,但运行时出现此错误:

无法将 CLlocation 对象转换为 EMTrackPoint 对象

for element in objectsArray {
    let item = CLLocation(latitude: element.latitude, longitude: element.longitude) as! EMTrackPoint

    item.mElevation = element.ele
    item.mOrientation = element.orientation
    item.mDate = Date()
    if element.poiActive != ""{
         GPXActive.add(element.poiActive.components(separatedBy: ","))
    }
    GPXDanger.add(element.dangerActive.components(separatedBy: ","))
    item.mActivePOIs = GPXActive
    item.mActiveDangers = GPXDanger
    GPXPoints.add(item)
}

Objective C 中的EMTrackPoint 类:

@interface EMTrackPoint : CLLocation

@property (nonatomic, assign) double mElevation;
@property (nonatomic, retain) NSDate *mDate;
@property (nonatomic, retain) NSMutableArray *mActivePOIs;
@property (nonatomic, retain) NSMutableArray *mActiveDangers;
@property (nonatomic, assign) double mOrientation;
@property (nonatomic, assign) double mSpeed;

请帮忙。

【问题讨论】:

    标签: objective-c swift cllocation


    【解决方案1】:

    每个EMTrackPoint 也是一个CLLocation 那么为什么不首先初始化一个EMTrackPoint 实例而不是进行类型转换:

    for element in objectsArray {
        let item = EMTrackPoint(latitude: element.latitude, longitude: element.longitude)
        item.mElevation = element.ele
        item.mOrientation = element.orientation
        item.mDate = Date()
        ...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-30
      • 1970-01-01
      • 1970-01-01
      • 2015-07-08
      • 1970-01-01
      • 2021-05-08
      • 2015-06-10
      • 1970-01-01
      相关资源
      最近更新 更多