0

考虑这段代码:

NSString * coordinateString = [NSString stringWithFormat:@"(%@,%@}", [inPoint objectAtIndex:0],[inPoint objectAtIndex:1]];
CLLocationCoordinate2D  * myPoint= (__bridge CLLocationCoordinate2D *)(coordinateString);

我的问题是:在这个例子中,价值

[inPoint objectAtIndex:0] and [inPoint objectAtIndex:0]

分别是 16.4006 和 38.254

如果我记录 myPoint 的值,我会得到“myPoint=(16.400583,38.254028}”。正如我预期的那样。但是,在调试面板中,myPoint 以 7304.....-304 的纬度和一个无穷零的经度。

这是一种内部表示,还是在从 double 到 NSString 到 CLLocationCoordinate2D 的转换中丢失了什么?

4

1 回答 1

0

我希望这与某人有关:我最终用以下代码解决了这个问题:

float lat = [[inPoint objectAtIndex:0]floatValue];
float lng = [[inPoint objectAtIndex:1]floatValue];

CLLocationCoordinate2D myPoint = CLLocationCoordinate2DMake(lat, lng);

输入是双精度的,显然需要转换为浮点数。

于 2015-09-13T14:12:45.653 回答