【发布时间】:2018-03-09 20:16:50
【问题描述】:
我想知道CLLocationAccuracy 对象的幅度值是否代表以米为单位的距离。在Xcode docs 中是这样描述的:
描述:这个值的大小。 //这个值是准确的 价值?
对于任何值 x,x.magnitude.sign 是 .plus。如果 x 不是 NaN, x.magnitude 是 x 的绝对值。全局 abs(:) 函数 当您需要查找绝对值时,它提供了更熟悉的语法。 另外,因为 abs(:) 总是返回相同类型的值, 即使在一般情况下,使用函数而不是幅度 鼓励财产。
清单 1 让 targetDistance: Double = 5.25 让 throwDistance: Double = 5.5
让边距 = targetDistance - throwDistance // 边距 == -0.25 // margin.magnitude == 0.25
// 使用 'abs(_:)' 而不是 'magnitude' print("Missed the target by (abs(margin)) 米。") // 打印“错过目标 0.25 米。”
大小与距离有什么关系?我可以看到它与原始的 proximity 值不同,因为它高于 3。
例如(来自测试的控制台输出):
[CLBeacon (uuid:12345678-B644-4520-8F0C-720EAF059935, major:1, minor:3, proximity:3 +/- 5.39m, rssi:-71)] //a beacon that is being ranged
major: 1
minor: 3
accuracy: 5.38695083568272
2.64546246474154 --- magnitude
您可以看到准确度为 5.3869...接近度值为 3...幅度为 2.6454 - 它们之间的关系如何?
【问题讨论】:
-
CLLocationAccuracy只是Double的 typedef,所以幅度只是Double的幅度,这是文档所说的绝对值。
标签: ios core-location ibeacon