在 Stack Overflow 中,我看到了找到最接近信标的答案(Swift find nearest Beacon by rssi)。
在这里,我尝试准确地在 Objective-C 中找到最接近的。我的应用程序每秒钟都会发现信标,因为时间精度无法正常找到最接近的位置。正如他所说,RSSI 将每 1 秒更新一次。所以我想使用 RSSI 过滤最近的信标。我将您的 Swift 代码转换为 Objective-C,但它不能正常工作。
这是斯威夫特代码:
//Swift code
var closestBeacon: CLBeacon? = nil
for beacon in beacons {
if beacon.rssi < 0 && closestBeacon != nil && beacon.rssi > closestBeacon!.rssi {
closestBeacon = beacon as? CLBeacon
}
}
这是我转换的 Objective-C 代码不起作用:
CLBeacon *closest = nil;
for (CLBeacon *beacon in beacons) {
if (beacon.rssi < 0 && closest != nil && beacon.rssi > closest.rssi) {
closest = beacon;
}
}
在这里,请让我在我做错的地方完美。