【问题标题】:Convert NSNumber to CLCoordinate将 NSNumber 转换为 CLCoordinate
【发布时间】:2010-11-24 14:34:52
【问题描述】:

我想从数据库中提取坐标列表到一个数组中(在地图上显示它们之前)。但是,在数据库中它们是数字类型,我不知道如何将它们转换为坐标。

这不起作用: 我有一个 ATM 对象(坐标用于 atm 机器),其中 NSNumbers 用于纬度和经度。这是在索引为 i 的循环中,以便将它们一一拉出。 atmsArray 已经加载完毕。

ATM *aATM = [self.atmsArray objectAtIndex:i];


CLLocationCoordinate2D coord=[[CLLocationCoordinate2D alloc] initWithLatitude:(CLLocationDegrees)aATM.Latitude longitude:(CLLocationDegrees)aATM.Longitude];

显示错误: -CLLocationCoordinate2D 不是objectiveC 类名或别名 - 预期浮点值时使用的指针值 - 预期浮点值时使用的指针值

我尝试了一些不同的方法,但无法弄清楚。如果需要更多信息,请告诉我。

【问题讨论】:

    标签: objective-c coordinates core-location cllocation


    【解决方案1】:

    aAtm.Longitude 和 aAtm.Latitude 是 NSNumber,它们是指针,因此不能转换为 CLLocationDegrees。您需要使用 NSNumbers 的双精度值。

    CLLocationCoordinate2D coord;
    coord.longitude = (CLLocationDegrees)[aATM.Longitude doubleValue];
    coord.latitude = (CLLocationDegrees)[aATM.Latitude doubleValue];
    

    As per this answer

    【讨论】:

      【解决方案2】:

      你想要的是这样的:

      CLLocationCoordinate2D coord;
      coord.longitude = (CLLocationDegrees)aATM.Longitude;
      coord.latitude = (CLLocationDegrees)aATM.Latitude;
      

      【讨论】:

        猜你喜欢
        • 2011-09-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-05
        • 2011-04-27
        相关资源
        最近更新 更多