指针不能转换为'double'类型

时间:2013-08-01 13:52:42

标签: objective-c pointers casting double

我想在地图上同时显示多个注释。我遇到的问题是我的所有纬度和经度都是NSString ......

我想将字符串转换为duble,以便我可以传递给“CLLocationCoordinate2D”实例。 但是我得到的错误是:指针不能被强制转换为'double'

locationCoordinate.latitude=(double)NearbyLocations.lat;
locationCoordinate.latitude=(double)NearbyLocations.lng;

这是我遇到问题的代码的一部分。但是,你可能会看到我还没有完成它。

NSMutableArray *locations= [[NSMutableArray alloc]init];
CLLocationCoordinate2D locationCoordinate;
location *NearbyLocations;
Annotation *annotatedLocations;

//for (int i=0; i < locationOnMap.count;i++) {


    annotatedLocations = [[Annotation alloc]init];

    locationCoordinate.latitude=(double)NearbyLocations.lat;
    locationCoordinate.latitude=(double)NearbyLocations.lng;
    annotatedLocations.coordinate=locationCoordinate;
    annotatedLocations.title=NearbyLocations.lo_name;
    annotatedLocations.subtitle=NearbyLocations.lo_vicinity;
    [locations addObject:annotatedLocations];
//}

如何将点类型字符串转换为double

2 个答案:

答案 0 :(得分:4)

您必须使用NSString转换方法doubleValue。看看这里:How to do string conversions in Objective-C?

答案 1 :(得分:2)

这意味着您正在尝试将NSNumber objective-c对象强制转换为C基元类型,这是不可能的。要向字典添加整数,必须将其转换为NSNumber对象。要把它拉出来,你必须将它转换回来:

locationCoordinate.latitude = [NearbyLocations.lat doubleValue];
locationCoordinate.latitude = [NearbyLocations.lng doubleValue];