再现问题的代码:
-(void)testDistance {
NSLog(@"Test distance...");
CLLocation *location1 = [[CLLocation alloc] initWithLatitude:137.02954600000001 longitude:50.543728999999999];
CLLocation *location2 = [[CLLocation alloc] initWithLatitude:55.79676300 longitude:49.10834400];
CLLocationDistance distance = [location1 distanceFromLocation:location2];
NSLog(@"Distance: %lf", distance);
}iOS 8.4产出:
距离: 9021699.415204
iOS 9.1产出:
距离: 0.000000
location1和location2不是零。
我搜索了一个类似的问题,但找不到。在我看来,这是一个iOS 9错误。你同意吗?你有类似的结果吗?我想向苹果发送一份错误报告,但我想先确认一下。
我在模拟器上运行了代码( iOS 8.4和iOS 9.1)。系统语言设置为俄语,该地区设置为俄罗斯。
更新:、lat和lon结果是混合的。纬度应该在- 90,90范围内。在iOS的早期版本中,它仍然产生了一些结果。在iOS 9中,他们让它返回0。对于这种情况,我不认为这是一个很好的返回值,因为它是一个完全有效的值。我认为他们应该返回一些错误代码(就像对nil一样,返回-1)。至少,它必须在文档中提到。我打算在最近的将来提交一份错误报告。
发布于 2015-10-26 14:04:43
检查location1的纬度值。我想是与纬度范围(-90,90)不匹配的。
https://stackoverflow.com/questions/33346082
复制相似问题