如果在Xcode 6中由Swift调用,MKMapRectUnion似乎无法正常工作。以下是测试代码:
var lat = 37.33072
var lon = -122.029674
var loc = CLLocationCoordinate2D(latitude: lat, longitude: lon)
var point = MKMapPointForCoordinate(loc)
var flyTo = MKMapRect(origin: point, size: MKMapSize(width: 1,height: 1))
println("before: \(flyTo.origin.x) \(flyTo.origin.y) \(flyTo.size.width) \(flyTo.size.height)")
flyTo = MKMapRectUnion(flyTo, flyTo)
println("after: \(flyTo.origin.x) \(flyTo.origin.y) \(flyTo.size.width) \(flyTo.size.height)")
println应该在两种情况下都打印相同的值,因为rect与自身联合。但是,上面的代码打印不同的值如下:
before: 43225808.0396629 104173696.109851 1.0 1.0
after: -3.83373425165789e-307 1.46741238348183e-306 9.00321006028138e-314 5.29980882362664e-315
我尝试了上面的代码(用objective-c编写)并在之前和之后得到了相同的结果。 这里有人遇到过同样的事吗?这里有什么不对吗?